查找数据表之间的值

时间:2015-04-30 05:54:39

标签: c# datatable ado.net lookup

我想要一些帮助,最好是示例代码和演练,了解如何在两个数据表之间查找值并创建一个包含合并值的新数据表。我被告知我需要使用LINQ,但我无法理解我在网上看到的使用SQL到LINQ的例子。

我的要求是加载两个excel文件的内容并创建一个包含缺失值的新报告。我可以使用vlookup在excel中执行此操作。到目前为止我所取得的是将两个excel表数据加载到2个数据表中。我知道我们也可以使用数据集,但我使用了这种方法。

所以我的样本dt1看起来如下:

enter image description here

dt2如下:

enter image description here

我想在指定栏下从dt2到dt1获得相应的名称,因此最终输出如下所示:

enter image description here

编辑1:

private void MergeDatatable(string excelFilepath1, string excelFilepath2)
    {
        string excelConString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" +
                                excelFilepath1 + "'; Extended Properties='Excel 12.0 Xml;HDR=Yes;IMEX=1;'";
        string excelSql = "select * from [Sheet1$]";


        DataTable dt1 = new DataTable();
        DataTable dt2 = new DataTable();



        using (OleDbDataAdapter adap= new OleDbDataAdapter(excelSql, excelConString))
        {
            adap.Fill(dt1);
        }

        excelConString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" +
                         excelFilepath2 + "'; Extended Properties='Excel 12.0 Xml;HDR=Yes;IMEX=1;'";
        excelSql = "select * from [Sheet1$]";

        using (OleDbDataAdapter adap = new OleDbDataAdapter(excelSql, excelConString))
        {
            adap.Fill(dt2);
        }

        var joineddt = from tp in ds.Tables
                       join mp in ds.Tables(dt2) on tp.emp_id equals mp.emp_id
                       select new
                           {

                           };

0 个答案:

没有答案