我在客户端有一个CSV文件,我想开发一个C#应用程序,将数据批量插入数据库表中,以最小化日志输出.如果我在客户端使用ADO.NET来调用数据库服务器中的存储过程,我感到很困惑.需要在客户端开发什么样的代码以及需要以存储过程的形式在服务器端实现哪种代码?
但我没有找到谷歌的任何样本.什么是准备使用的样品?:-)
编辑:更多信息:
我在客户端有很多数据,我想导入到数据库,但我不想要所有许多事务日志的开销.出于安全原因,我想在服务器端开发存储过程并从客户端(ADO.NET)调用.我想知道实现这样的目标.需要在服务器端的存储过程中开发什么样的T-SQL,以及如何在客户端有效地调用/填充数据?
如果还有什么不清楚的地方,请随时告诉我.
您可以将CsvReader挂钩到SqlBulkCopy,它可以很好地完成工作...类似于(未经测试):
using (CsvReader reader = new CsvReader(path)) using (SqlBulkCopy bcp = new SqlBulkCopy(CONNECTION_STRING)) { bcp.DestinationTableName = "SomeTable"; bcp.WriteToServer(reader); }
编辑通常会将批量插入执行到临时表,然后使用常规存储过程将数据移动到实际表中.