我在管道分隔文本文件和数据库表中包含具有相同模式的数据,包括主键列。对两个相同的数据源进行迭代
我必须检查文件中的每一行是否存在于表中,如果不为该行生成INSERT语句。
该表具有30列,但在这里,我已经简化此示例:
ID Name Address1 Address2 City State Zip
ID是运行标识列;因此如果在表中找到文件中的特定ID值,则不应该为此生成insert
语句。
这里是我的尝试,这并不觉得正确的:
foreach (var item in RecipientsInFile)
{
if (!RecipientsInDB.Any(u => u.ID == item.ID))
{
Console.WriteLine(GetInsertSql(item));
}
}
Console.ReadLine();
编辑:对不起,我错过了询问的实际问题;这个怎么做? 非常感谢您的帮助。
编辑:表有百万加上行,而文件有50K行。这是一次性的事情,而不是一个永久的项目。
你的问题是什么? – 2013-03-20 15:16:45
@BalaR我想问如何做到这一点。抱歉。 – FMFF 2013-03-20 15:19:12
抛开感觉,当你运行该代码时发生了什么? – 2013-03-20 15:19:50