2013-03-28 68 views
0

在下面的C#代碼時:語法錯誤定義BULK INSERT參數

string filePath = @"C:\Users\Me\Documents\note.txt" 
var SqlSaveCommand = new SqlCommand(@"BULK INSERT table FROM @filepath", con); 
SqlSaveCommand.Parameters.Add(new SqlParameter("@filepath", filePath)); 

執行SQL命令時,我得到一個語法錯誤附近@filepath

然而,由於預計有下面做工作:

BULK INSERT proxylist FROM 'C:\Users\Me\Documents\note.txt' 

我在做什麼錯在指定@filepath參數?

回答

2

您不能參數化BULK INSERT的路徑。你會看到在Management Studio同樣的錯誤,如果你說:

BULK INSERT dbo.tablename FROM @wherever... 

而且通常你需要一些WITH選項出現,例如指定ROWTERMINATOR, FIELDTERMINATOR

爲什麼不在程序中構建整個命令?

string filePath = @"C:\Users\Me\Documents\note.txt" 
string cmd = @"BULK INSERT proxylist FROM '" + @filepath + "';"; 
var SqlSaveCommand = new SqlCommand(cmd, con); 
+0

我不需要FIELDTERMINATOR,因爲它只有一個列數據,並且謝謝你做到了! – user1590636 2013-03-28 00:21:36