0

在以下 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));

@filepath执行 sql 命令时出现语法错误。

但是,以下确实按预期工作:

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

我在指定@filepath参数时做错了什么?

4

1 回答 1

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);
于 2013-03-28T00:19:50.790 回答