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));

@filepathsql コマンドを実行すると、近くで構文エラーが発生します。

ただし、以下は期待どおりに機能します。

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 に答える