0

我的数据库中有一个名为 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!!!!");
                }
            }
4

1 回答 1

2

您可以使用此Linq-To-DataTable连接两个表,例如:

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效率很高,但最好在数据库中进行比较,而不是将所有内容都加载到内存中。

于 2013-01-03T11:44:25.830 回答