c# - DATABASE 和 DATATABLE 之间的重复检查

标签 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!!!!");
                }
            }

最佳答案

您可以使用 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非常高效,最好在数据库中进行比较,而不是全部加载到内存中。

关于c# - DATABASE 和 DATATABLE 之间的重复检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14138155/

相关文章:

c# - 我可以 "prime"CLR GC 期望挥霍内存使用吗?

php - Laravel 4.1 原始查询访问结果

php - SQL在第1行创建表错误

c# - 保存域实体更改

c# - 检查 asp.mvc 中 View 模型更改的简单方法

c# - 使用 IP 地址从 C# HttpClient 向同一台机器发出 HTTP 请求

c# - 运行单独进程的首选架构

c# - 使用 PInvoke 在 C# 中等效于 C unsigned char 数组

c# - 是否可以将 Excel/CSV 数据从剪贴板粘贴到 C# 中的 DataGridView?

php - 尝试使用 PDO 对照数据库检查用户