Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WinForms: Linked tables how to edit? / 10 сообщений из 10, страница 1 из 1
01.11.2004, 13:31
    #32763075
Dim Grishin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms: Linked tables how to edit?
Всем привет.
Значит такой вопрос:
У меня есть таблица Table1 которая ссылается на таблицы Table2,Table3.
Грубо говоря:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Table1:
ID_Table1 int PK 
ID_Table2 int FK
ID_Table3 int FK
T1Text varchar(100)
---
Table2:
ID_Table2 int PK
T2Text varchar(100)
---
Table3:
ID_Table3 int PK
T3Text varchar(100)

Что нужно:
1. Выводить в DataGrid список записей таблицы Table1 в формате
ID_Table1,T1Text,T2Text,T3Text ( то есть запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT ID_Table1,T1Text,T2Text,T3Text 
FROM Table1 
INNER JOIN Table2 ON  
Table2.ID_Table2 =Table1.ID_Table2 
INNER JOIN Table3 ON 
Table3.ID_Table3 =Table1.ID_Table3
(В принципе это ясно как сделать)
2. Дать возможность редактировать данные табилцы Table1, через форму не через грид.

Как это лучше и правильнее сделать на С# и как это вообще можно сделать?
Обчыную таблицу (вида SELECT * FROM Table) без ссылок на другие таблицы ясно как редактировать.
...
Рейтинг: 0 / 0
01.11.2004, 17:14
    #32763732
Dim Grishin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms: Linked tables how to edit?
Куда все гуру подевались? Хелп!!!
...
Рейтинг: 0 / 0
01.11.2004, 17:32
    #32763780
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms: Linked tables how to edit?
так и непонятно, что тебя интересует ? как редактировать записи, используя lookup'ы в combobox ? - так ты вроде недавно все это уже делал/сделал...

читай и БД 3 (три) таблицы. для показа в гриде сделай 2 (два) вычисляемых поля. для редактировании на форме - 2 combo с lookup таблицами.
...
Рейтинг: 0 / 0
01.11.2004, 17:59
    #32763847
Dim Grishin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms: Linked tables how to edit?
кузя, я тут немного разобрался, но всё же есть вопросы.

Я немного уточню.
У меня есть 3 формы.
1. Выбор агента
2. просмотр параметров выбранного агента в первой форме.
3. редактирования параметра выбранного во второй форме, агента выбранного в первой форме.

У меня не получается получать тек. запись из второй формы, для редакитрования в третей.
Делаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
(
				(AgentMan.dsMain.TariffRow)
					(
						(DataRowView)this.BindingContext[this.dsMain1.Tariff].Current
					).Row
			);
Где AgentMan.dsMain.Tariff - таблица, запись которой я хочу редактировать
dsMain1 - DataSet второй формы (this.dsMain1=dsParam; )
dsParam - DataSet первой формы.

Что я не правильно делаю? :(
...
Рейтинг: 0 / 0
01.11.2004, 18:11
    #32763872
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms: Linked tables how to edit?
во вторую форму передается запись или весь bindingcontext ?

что то, похожее на:
Код: plaintext
1.
2.
Form2 frm=new Form2();
frm.BindingContext=this.BindingContext;
frm.ShowDialog();
...
Рейтинг: 0 / 0
01.11.2004, 18:44
    #32763925
Dim Grishin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms: Linked tables how to edit?
Из первой формы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
// открытие формы
frmEditAgentParam frmEAP=new frmEditAgentParam();
frmEAP.DialogParam(this.ds);
frmEAP.ShowDialog(this);
if (frmEAP.DialogResult==DialogResult.OK)
{
this.UpdateTableData(this.ds.Tariff,this.sdaTariff);
}

Во второй форме:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
public void DialogParam(AgentMan.dsMain dsParam)
{
this.dsMain1=dsParam;

grdTariff.DataSource=dsParam;
grdTariff.DataMember=dsParam.Tariff.TableName;
}				
...
Рейтинг: 0 / 0
01.11.2004, 19:42
    #32764000
Dim Grishin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms: Linked tables how to edit?
Кузя, что скажешь, очень всё запущено?
...
Рейтинг: 0 / 0
01.11.2004, 19:43
    #32764001
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms: Linked tables how to edit?
у тебя должен быть binding, который определен (т.е. что то похожее):
Код: plaintext
1.
2.
3.
(DataRowView)this.BindingContext[this.dsMain1, this.dsMain1.Tariff.TableName].Current;
// или
(DataRowView)this.grdTariff.BindingContext[this.grdTariff.DataSource, this.grdTariff.DataMemver].Current;
...
Рейтинг: 0 / 0
02.11.2004, 10:38
    #32764423
Dim Grishin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms: Linked tables how to edit?
Всем привет.

2 Keзя

Рулит, всё ок. :) Thx!


Еще вопрос.
Что происходит при выполнении данного оператора?
Код: plaintext
1.
frm.BindingContext=this.BindingContext;
...
Рейтинг: 0 / 0
02.11.2004, 13:10
    #32764845
Dim Grishin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForms: Linked tables how to edit?
Так всё сложно как на одном месте....
У меня запрос

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT ID_Table1,T1Text,T2Text,T3Text 
ID_Table2, -- для редактирования
ID_Table3 -- для редактирования

 
FROM Table1 
INNER JOIN Table2 ON  
Table2.ID_Table2 =Table1.ID_Table2 
INNER JOIN Table3 ON 
Table3.ID_Table3 =Table1.ID_Table3

В Dataset'e, тот который XSD (тип файла), таблица
с полями (ID_Table1,T1Text,T2Text,T3Text,ID_Table2,ID_Table3),
так вот, я когда редактирую
запись таблицы Table1 в третей форме (ввожу данные в T1Text, допустим ID_Table1 - счетчик, через 2 компбо данные в ID_Table2,ID_Table3),
так оно мне пишет
Код: plaintext
1.
Column 'T2Text' does not allow nulls.
Чё за бред? причём тут 'T2Text'?
Что я делаю не так?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WinForms: Linked tables how to edit? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]