C# SQL Server和CSV文件之间的同步
在Microsoft Excel中,同步SQL Server中的表(客户)和CSV文件中的客户的更好方法是什么 好的,解释如下: 我正在C#.NET2008中开发一个软件,并在SQLServer2005中创建了一个名为Customers的表。此表的内容来自CSV文件,用户可以添加更多信息,因为SQL表的字段比CSV文件多 第一次很容易。。我只是为CSV文件中的每一行添加新内容。C# SQL Server和CSV文件之间的同步,c#,sql,sql-server,csv,synchronize,C#,Sql,Sql Server,Csv,Synchronize,在Microsoft Excel中,同步SQL Server中的表(客户)和CSV文件中的客户的更好方法是什么 好的,解释如下: 我正在C#.NET2008中开发一个软件,并在SQLServer2005中创建了一个名为Customers的表。此表的内容来自CSV文件,用户可以添加更多信息,因为SQL表的字段比CSV文件多 第一次很容易。。我只是为CSV文件中的每一行添加新内容。 但是,第二次,由于这些额外字段,我无法从一开始就删除所有表以再次导入它,因此我需要一种方法,可以自动验证SQL表和CS
但是,第二次,由于这些额外字段,我无法从一开始就删除所有表以再次导入它,因此我需要一种方法,可以自动验证SQL表和CSV文件中的每条记录?或者我需要逐个处理这些记录?看看SQL Server集成服务,它可以做您想做的任何事情,而且可以做得更多
或者,如果您确实想对其进行编码,那么我建议对CSV中的所有字段进行散列,并使用该散列来比较每一行。不同的hash=change=updated行。您可以将CSV表和额外信息分离到一个表和一个视图中。您将有一个表,它只是CSV文件本身的一个哑镜像,并且易于更新:
TRUNCATE TABLE csvmirror;
BULK INSERT csvmirror
FROM 'P:\ath\to\csvfile.csv' WITH
( FIELDTERMINATOR = ','
, ROWTERMINATOR = '\n' );
然后在“csvmirror”表上创建一个视图,用数据库中的额外数据补充直接csv文件数据。csv数据中是否有键字段?这是您最初的问题,找到一种方法将CSV中的记录与表中的数据相匹配。第二个问题是确保CSV中的密钥不会改变,或者——不那么有趣——确定如何管理可能发生的情况。除最后一个问题外,还有一个更一般的“如果从CSV中删除记录,我该怎么办”问题,这不是软件中的问题,而是您可以控制删除操作的方式。我在CSV数据中有一个关键字段。下面是我想做的:1)C将读取CSV的每一行,并将所有列传递给存储过程2)过程将请求现有注册表(使用键字段),以及:-它存在吗。是:更新(无论是否更改),并将名为UPDATED_BY_USER的字段设置为TRUE。不允许:addnew 3)在CSV记录的末尾,存储过程将从CHECKED=FALSE的客户中删除所有记录(这意味着此记录已从CSV文件中删除),然后将customers表中的所有记录设置为FALSE,对吗?使用哈希的概念很简单(我“知道”的想法之一)但我似乎无法在脑海中把它作为解决方案)