日期:2014-05-17  浏览次数:21062 次

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