如何基于公共列在c#中连接excel表格?

如何基于公共列在c#中连接excel表格?,c#,excel,datatable,C#,Excel,Datatable,这是我的excel工作表: 下面是我在c#中用来阅读它们的代码: _ds = new DataSet(); _tb = new DataTable(); var myConnection = new OleDbConnection(@"provider=Microsoft.ACE.OLEDB.12.0;data source=" + OFD.FileName + ";Extended Prope

这是我的excel工作表:

下面是我在c#中用来阅读它们的代码:

                _ds = new DataSet();
                _tb = new DataTable();

                var myConnection = new OleDbConnection(@"provider=Microsoft.ACE.OLEDB.12.0;data source=" + OFD.FileName + ";Extended Properties=Excel 12.0;");
                var myCommand = new OleDbDataAdapter("SELECT * FROM ["+SheetName+"$]", myConnection);
                myCommand.Fill(_tb);
                _ds.Tables.Add(_tb);
                // _bs.DataSource = _ds.Tables[0];

                DataTable Sheet0 = _ds.Tables[0];

我的问题是:如何基于NID将这两个表连接起来并在DataGrid中显示结果?

从Excel导入的表连接与通常的连接没有什么不同,但有一个技巧。这些表应该有一个主键列
然后在您的情况下,我们首先将“id”列设置为主键:

Sheet0.PrimaryKey = new DataColumn[] { Sheet0.Columns["NID"] };
请记住:NID列值应该是唯一的,并且对于其他表也应该这样做
设置主键后,可以使用联接或合并表。我使用合并方法,因为它更简单。::

这里有一个关于你是否感兴趣的问题。您可以查看它。
我希望这有帮助

    var _TableAll = Sheet0.Copy();
   _TableAll.Merge(_Table2);