Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据库和数据表之间的重复性检查_C#_.net_Mysql - Fatal编程技术网

C# 数据库和数据表之间的重复性检查

C# 数据库和数据表之间的重复性检查,c#,.net,mysql,C#,.net,Mysql,我的数据库中有一列名为PNUMSET(主键),包含唯一的数据。(大约1L行) 在应用程序中,我有一个datatable,其中一个列名为NEWPNUM,其中包含数据 我想检查现有数据库和当前datatable值之间是否没有匹配的值 注意:-数据库和datatable中的行数不能相同,也不能不同 到目前为止我试过 String query = "Select PNUMSET FROM DUMMYTABLE"; MySqlDataAdapter msda =

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

在应用程序中,我有一个datatable,其中一个列名为NEWPNUM,其中包含数据

我想检查现有数据库和当前datatable值之间是否没有匹配的值

注意:-数据库和datatable中的行数不能相同,也不能不同

到目前为止我试过

           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!!!!");
                }
            }
String query=“从DUMMYTABLE中选择PNUMSET”;
MySqlDataAdapter msda=新的MySqlDataAdapter(查询、连接);
msda填充(dt);
对于(int k=0;k
您可以使用
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
}
var commonRows=来自dt.AsEnumerable()中的r1
将r2加入Class1.global_dataset.Tables[0].AsEnumerable()中
在r1上。字段(4)等于r2。字段(4)
选择r1;
if(commonRows.Any())
{
//对这些行做些什么
}
(假设第5列及其类型为
int


请注意,虽然这非常有效,但最好在数据库中进行比较,而不是将所有数据加载到内存中。

是否要列出DataTable和数据库之间的所有相交行?为什么要填充DataTable来检查这一点,在数据库中检查这一点会更有效率。填充DataTable是不同的任务,最后我想添加它(DataTable)在数据库中,但在执行此操作之前,我想检查有多少相交行,以便我可以为其创建一个日志文件。无论如何,这不是我要找的。谢谢您的帮助。等待更多的建议,否则我会同意,但方式不同:)@尼拉马克斯:听听你的期望会对我们有帮助。我的答案会给你所有相交的行。不,我想这正是可以帮助我的:)所以我收回我的话:)嘿,还有一个问题,如果类型是VARCHAR而不是int???@neerajMAX:那么它是
数据表中的
字符串
。只需将
Field…
更改为
Field
。执行相同的操作。。谢谢你的回答。。。让我试试,然后我会让你知道…:)