C#调用SQL存储过程批量导入CSV文件方法
因为要往数据库每天导入十多个CSV文件数据,了解到触存储过程速度较快灵活,在网上搜了一个模板如下:
CREATE PROCEDURE [dbo].[ImportFile]
@FilePath NVARCHAR(200), --eg:'D:\\DATAExchange\\CSVTMP'
@FileName NVARCHAR(100), --eg:'ExportFileOne.csv'
@TableName NVARCHAR(100) --eg: 'MSSQLExportFileTableOne'
AS
BEGIN
DECLARE @DelSQLstr NVARCHAR(600)
DECLARE @ImpSQLstr NVARCHAR(600)
-- Clear the Content of the Destination Table
--SET @DelSQLstr='DELETE FROM ' +@TableName
--Exec sp_executesql @DelSQLstr
-- Import csv Data Into the Destination Table
SET @ImpSQLstr='INSERT INTO ' + @TableName +
' SELECT * FROM OPENROWSET(''MSDASQL'', '' Driver={Microsoft Text Driver (*.txt; *.csv)};
DEFAULTDIR='+@FilePath+'; Extensions=CSV;'',''SELECT * FROM "'+@FileName+'" '')'
Exec sp_executesql @ImpSQLstr
SELECT @@ROWCOUNT
END
现在存储过程建好了,在C#中应该怎么去使用它?这个存储过程可以用吗?
比如: abc_20130916.csv 文件存入表 abc ,路径:D:\data 存储过程 数据导入
[解决办法]
http://www.cnblogs.com/YoursLan/archive/2010/10/18/1853940.html