【问题标题】:How join to excel table in c# base on common column?如何在 C# 中基于公共列加入 excel 表?
【发布时间】:2018-06-19 10:49:30
【问题描述】:

这是我的 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 中显示结果?

【问题讨论】:

    标签: c# excel datatable


    【解决方案1】:

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

    Sheet0.PrimaryKey = new DataColumn[] { Sheet0.Columns["NID"] };
    

    记住:NID 列值应该是唯一的并且您也应该对其他表执行此操作。
    设置主键后,您可以使用联接或合并表。我使用合并方法,因为它更简单。 :) :

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

    如果您有兴趣,这里有关于join method 的问题。你可以去看看。
    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-05
      • 1970-01-01
      相关资源
      最近更新 更多