Hello,
aahhhhhhhhhh ! Après réfléxion et tests, j'ai trouvé ton erreur ;)
==>
DataGridView1.DataMember = "facture" //Faux !!
==> DataGridView1.DataMember = "client.dr1";
A priori ça devrait marcher.
Un petit exemple pour bien comprendre : j'utilise la base de données Northwind et je crée 2 relations :
==> entre Customers et Orders
==> entre Orders et OrderDetails
===========================================================================
//on cr,e notre factory et notre connexion
this.m_factory = DbProviderFactories.GetFactory("System.Data.SqlClient");this.m_connection = this.m_factory.CreateConnection();this.m_connection.ConnectionString = this.m_connectionString;//instanciation du DataSetthis.m_ds = newDataSet("RelationCustOrders");//cr,ation et param,trage du dataAdapter charg, de lister les clientsthis.m_daCustomers = this.m_factory.CreateDataAdapter();this.m_daCustomers.SelectCommand = this.m_factory.CreateCommand();this.m_daCustomers.SelectCommand.CommandText = "SELECT * FROM Customers";this.m_daCustomers.SelectCommand.Connection = this.m_connection;this.m_daCustomers.TableMappings.Add("Table", "Customers");this.m_daCustomers.Fill(this.m_ds);//cr,ation et param,trage du dataAdapter charg, de lister les achatsthis.m_daOrders = this.m_factory.CreateDataAdapter();this.m_daOrders.SelectCommand = this.m_factory.CreateCommand();this.m_daOrders.SelectCommand.CommandText = "SELECT * FROM Orders";this.m_daOrders.SelectCommand.Connection = this.m_connection;this.m_daOrders.TableMappings.Add("Table", "Orders");this.m_daOrders.Fill(this.m_ds);//cr,ation et param,trage du dataAdapter charg, de lister le d,tail des achatsthis.m_daDetailsOrders = this.m_factory.CreateDataAdapter();this.m_daDetailsOrders.SelectCommand = this.m_factory.CreateCommand();this.m_daDetailsOrders.SelectCommand.CommandText = "SELECT * FROM [Order Details]";this.m_daDetailsOrders.SelectCommand.Connection = this.m_connection;this.m_daDetailsOrders.TableMappings.Add("Table", "OrderDetails");this.m_daDetailsOrders.Fill(this.m_ds);//on cr,e la relation entre les tables Orders et CustomersDataRelation l_relCustOrder;DataColumn l_colMasterCust;DataColumn l_colDetailCust;l_colMasterCust =
this.m_ds.Tables["Customers"].Columns["CustomerID"];l_colDetailCust =
this.m_ds.Tables["Orders"].Columns["CustomerID"];l_relCustOrder =
newDataRelation("FK_Order_Reference_Customer", l_colMasterCust, l_colDetailCust);this.m_ds.Relations.Add(l_relCustOrder);//ajout de la relation au dataset//on cr,e la relation entre les tables Orders et Order DetailsDataRelation l_relOrderDetail;DataColumn l_colMasterOrder;DataColumn l_colDetailOrder;l_colMasterOrder =
this.m_ds.Tables["Orders"].Columns["OrderID"];l_colDetailOrder =
this.m_ds.Tables["OrderDetails"].Columns["OrderID"];l_relOrderDetail =
newDataRelation("FK_OrderDetail_Reference_Order", l_colMasterOrder, l_colDetailOrder);this.m_ds.Relations.Add(l_relOrderDetail);//ajout de la relation au dataset//binding du dataGrid affichant les clients au datasetdataGridView_customers.DataSource =
this.m_ds;dataGridView_customers.DataMember =
"Customers";//binding du dataGrid affichant les achats au datasetdataGridView_orders.DataSource =
this.m_ds;dataGridView_orders.DataMember =
"Customers.FK_Order_Reference_Customer";//binding du dataGrid affichant le d,tail des achats au datasetdataGridView_detailsOrders.DataSource =
this.m_ds;dataGridView_detailsOrders.DataMember =
"Customers.FK_Order_Reference_Customer.FK_OrderDetail_Reference_Order";
=============================================================================
Désolé pour le bout de code un peu long :)
Cordialement,
Bidou_01
[ Lien ]