Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ACCESS中显示来自多个源的DataGridView_C#_Sql_Ms Access_Join_Datagridview - Fatal编程技术网

C# 在ACCESS中显示来自多个源的DataGridView

C# 在ACCESS中显示来自多个源的DataGridView,c#,sql,ms-access,join,datagridview,C#,Sql,Ms Access,Join,Datagridview,我想显示一个DataGridView,它的数据来自一个表,并从ACCESS数据库的另一个表中添加一个额外的列 这是我的代码: string PathDB6 = Application.StartupPath + @"\PcStore.ACCDB"; OleDbConnection connection6 = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + PathDB6 + ";Persist Sec

我想显示一个DataGridView,它的数据来自一个表,并从ACCESS数据库的另一个表中添加一个额外的列

这是我的代码:

string PathDB6 = Application.StartupPath + @"\PcStore.ACCDB";
OleDbConnection connection6 = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + PathDB6 + ";Persist Security Info=False;");
OleDbDataAdapter ada6 = new OleDbDataAdapter("SELECT * FROM CustomersOrdersDetail", connection6);
DataSet set6 = new DataSet();
ada6.Fill(set6, "CustomersOrdersDetail");
tabSearchCustomerOrder = new DataTable();
tabSearchCustomerOrder = set6.Tables["CustomersOrdersDetail"];
dgvCustomerOrderDetail.DataSource = tabSearchCustomerOrder;
dgvCustomerOrderDetail.Sort(dgvCustomerOrderDetail.Columns["OrderID"], ListSortDirection.Ascending);
dgvCustomerOrderDetail.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
但是我不知道如何从另一个表中选择一个额外的列到我上面提到的dgvCustomerOrderDetail的DataGridView

我在c中使用OLEDB

先谢谢你

我的表格和字段:


表1:客户订单详情

表2:客户订单


在我的dgv中,我拥有表CustomerOrdersDetail的所有数据,我想将从第二个表中批准的列Worker添加到该表中。

为了能够在DataGridView中显示额外的列,您需要相应地更新SQL以拥有该其他列

例如,考虑到您的第二个表是Customers表,并且您希望将此客户的电子邮件地址显示为附加列:

string sql = "SELECT CustomersOrdersDetail.*, Customers.Email 
FROM CustomersOrdersDetail INNER JOIN Customers on CustomersOrdersDetail.ID = Customers.ID";
您可以在上了解更多信息

填充数据集后,您应该会看到附加的电子邮件列

因此,在您的情况下,未检查:

string sql = "SELECT CustomersOrdersDetail.*, CustomersOrders.WorkerApproved
FROM CustomersOrdersDetail INNER JOIN CustomersOrders on
CustomersOrdersDetail.CustomerID = CustomersOrders.CustomerID AND
CustomersOrdersDetail.OrderID = CustomersOrders.OrderID";

为了能够向DataGridView显示额外的列,您需要相应地更新SQL以拥有这个其他列

例如,考虑到您的第二个表是Customers表,并且您希望将此客户的电子邮件地址显示为附加列:

string sql = "SELECT CustomersOrdersDetail.*, Customers.Email 
FROM CustomersOrdersDetail INNER JOIN Customers on CustomersOrdersDetail.ID = Customers.ID";
您可以在上了解更多信息

填充数据集后,您应该会看到附加的电子邮件列

因此,在您的情况下,未检查:

string sql = "SELECT CustomersOrdersDetail.*, CustomersOrders.WorkerApproved
FROM CustomersOrdersDetail INNER JOIN CustomersOrders on
CustomersOrdersDetail.CustomerID = CustomersOrders.CustomerID AND
CustomersOrdersDetail.OrderID = CustomersOrders.OrderID";

内部联接:只要公共字段中有匹配的值,就合并两个表中的记录。我没有一个公共字段,那么我能做什么呢?如果没有任何公共字段,那么如何关联来自两个不同表的两条记录。我不清楚,请发布相关表格及其字段,以便我能提供帮助。不是这样,请更新您的帖子。对于每个表,列出相关字段并对每个表进行简短说明。表号1:客户订单明细表号2:客户订单在我的dgv中我有表CustomerOrdersDetail的所有数据,我想将表2中批准的列WorkerApproved添加到该列中。常用字段是CustomerID和OrderID。内部联接:只要公共字段中有匹配的值,就合并两个表中的记录。我没有一个公共字段,那么我能做什么呢?如果没有任何公共字段,那么如何关联来自两个不同表的两条记录。我不清楚,请发布相关表格及其字段,以便我能提供帮助。不是这样,请更新您的帖子。对于每个表,列出相关字段并对每个表进行简短说明。表号1:客户订单明细表号2:客户订单在我的dgv中我有表CustomerOrdersDetail的所有数据,我想将表2中批准的列WorkerApproved添加到表中。常用字段是CustomerID和OrderID。