在以下C#代码中:
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
参数时我做错了什么?
答案 0 :(得分:2)
您无法参数化BULK INSERT
的路径。如果您说:
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);