powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Отобразить в dataGridView1 связные таблицы . . .
8 сообщений из 8, страница 1 из 1
Отобразить в dataGridView1 связные таблицы . . .
    #35528987
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли такое сделать:

Есть в БД две таблицы: "table1" и "table2".
______________________________________
"table1" содержит поля
id - аутоинкремент
id_table2 - связь с таблицей "table2"

"table2" содержит поля
id - аутоинкремент
name - текстовое поле, которое надо отобразить в Гриде вместо поля "id_table2" из "table1"
______________________________________


D "dataGridView1" на форме отображается таблица "table1" , но вместо поля "id_table2" нужно отбразить поле "name" таблицы "table2".
Возможно ли такое ???

Заранее спасибо всем откликнувшимся !!!
...
Рейтинг: 0 / 0
Отобразить в dataGridView1 связные таблицы . . .
    #35529243
Фотография WYPMAH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potkin
да, написать запрос на выборку из 2х связанных таблиц/создать вьюху.

например, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
select
    t2.name
from
    table1 t1,
    table2 t2
where
    t2.id = t1.id_table2
...
Рейтинг: 0 / 0
Отобразить в dataGridView1 связные таблицы . . .
    #35529399
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смотри DataRelation и DataColumn.Expression (выражения Parent, Child)
...
Рейтинг: 0 / 0
Отобразить в dataGridView1 связные таблицы . . .
    #35529702
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интерестно как сохранить введённые данные в Грид в таблицу table1 ???




Код отображения таблицы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
            //Считываем данные с таблицы table1 
            selectDocuments_source = "select    t2.name    from    table1 t1,    table2 t2   where    t2.id = t1.id_table2";
            adapterDocuments_source = new SqlDataAdapter(selectDocuments_source, conn);
            builderDocuments_source = new SqlCommandBuilder(adapterDocuments_source);
            builderDocuments_source.RefreshSchema();
            tableDocuments_source = new DataTable();
            adapterDocuments_source.Fill(tableDocuments_source);
            dGSource.DataSource = tableDocuments_source;

Код сохранения:

Код: plaintext
1.
 adapterDocuments_source.Update(tableDocuments_source);
...
Рейтинг: 0 / 0
Отобразить в dataGridView1 связные таблицы . . .
    #35529726
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>> смотри DataRelation и DataColumn.Expression (выражения Parent, Child)

Какого контрола ??? , если не секрет :-)
У датаГрида нет таких свойств . . .
...
Рейтинг: 0 / 0
Отобразить в dataGridView1 связные таблицы . . .
    #35529736
Фотография WYPMAH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potkin
читаем МСДН:
авторAutomatically generates single-table commands that are used to reconcile changes made to a DataSet with the associated SQL Server database.
...
Рейтинг: 0 / 0
Отобразить в dataGridView1 связные таблицы . . .
    #35529744
Фотография WYPMAH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potkinУ датаГрида нет таких свойств . . .
DataRelation это класс описывающие parent/child отношения между таблицами.

пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
private void CreateRelation() 
{
    // Get the DataColumn objects from two DataTable objects 
    // in a DataSet. Code to get the DataSet not shown here.
    DataColumn parentColumn = 
        DataSet1.Tables["Customers"].Columns["CustID"];
    DataColumn childColumn = 
        DataSet1.Tables["Orders"].Columns["CustID"];
    // Create DataRelation.
    DataRelation relCustOrder;
    relCustOrder = new DataRelation("CustomersOrders", 
        parentColumn, childColumn);
    // Add the relation to the DataSet.
    DataSet1.Relations.Add(relCustOrder);
}
...
Рейтинг: 0 / 0
Отобразить в dataGridView1 связные таблицы . . .
    #35531763
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заменим:
table1 -> source (id, name)
table2 -> documents_source (id, id_source)

и надо отобразить в Гриде таблицу "documents_source", но вместо поля "id_source" поле "name" таблицы "source".

Ну и код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
            strCommand = "SELECT id, name FROM source";
            myData = new SqlDataAdapter(strCommand, myConn);
            myData.Fill(DataSet1, "source");

            strCommand = "SELECT id, id_source, id_documents FROM documents_source where id_documents=1";
            myData.SelectCommand.CommandText = strCommand;
            myData.Fill(DataSet1, "documents_source");

            parentColumn = DataSet1.Tables["source"].Columns["id"];
            childColumn = DataSet1.Tables["documents_source"].Columns["id_source"];
            rel = new DataRelation("s_d", parentColumn, childColumn);
            DataSet1.Relations.Add(rel);

            builderDocuments_source = new SqlCommandBuilder(myData);
            builderDocuments_source.RefreshSchema();

            DataGrid1.DataSource = DataSet1.(???????????????)

ПОЖАЛУЙСТА подскажите: Правельный ли код ??? И что надо записать вместо "(???????????????)"
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Отобразить в dataGridView1 связные таблицы . . .
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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