DATABASE和DATATABLE之间的重复检查

时间:2013-01-03 11:35:26

标签: c# .net mysql

我的数据库中有一列名称PNUMSET(主键)包含唯一数据。(约1L行)

并且在应用程序中我有一个数据表,其中一个列名称为NEWPNUM,其中包含数据。

我想检查现有数据库和当前数据表值之间没有匹配值。

注意: - 数据库和数据表中没有行可能相同或不同。

到目前为止,我试过.....

           String query = "Select PNUMSET FROM DUMMYTABLE";
           MySqlDataAdapter msda = new MySqlDataAdapter(query, connection);
           msda.Fill(dt);                

            for (int k = 0; k < Class1.global_dataset.Tables[0].Rows.Count; k++)
            {
                if (dt.Rows.Contains(Class1.global_dataset.Tables[0].Rows[k][4].ToString()))
                {
                    MessageBox.Show("Baj Gaya Ghanta!!!!");
                }
            }

1 个答案:

答案 0 :(得分:2)

您可以在此列上使用Linq-To-DataTablejoin两个表格,例如:

var commonRows = from r1 in dt.AsEnumerable()
                 join r2 in Class1.global_dataset.Tables[0].AsEnumerable()
                 on r1.Field<int>(4) equals r2.Field<int>(4)
                 select r1;
if(commonRows.Any())
{
    // do something with these rows
}

(假设第5列及其类型int

请注意,尽管Enumerable.Join非常有效,但在数据库中对此进行比较而不是将其全部加载到内存中可能会更好。