0

.Net アプリケーションからこのクエリを実行しようとしています

LOAD DATA LOCAL INFILE 'testsFile.txt' 
INTO TABLE Test  
FIELDS TERMINATED BY ','  
OPTIONALLY ENCLOSED BY '"'  
LINES TERMINATED BY '\n'  
IGNORE 1 LINES  
(idTest, SampleID, Analyst, @Analysed, Device, Comments, @TotalRUL, @RULOne, @RULTwo, @RULThree, @RULFour, Uploaded) 
SET  
Analysed = nullif(@Analysed,''), 
TotalRUL = nullif(@TotalRUL,''), 
RULOne = nullif(@RULOne,''), 
RULTwo = nullif(@RULTwo,''), 
RULThree = nullif(@RULThree,''), 
RULFour = nullif(@RULFour,'')

このクエリを MySQL Workbench から実行するとすべて正常に動作しますが、.net アプリケーションを使用してクエリを実行すると、次の例外が発生します。

パラメータ「@Analysed」を定義する必要があります。

ストアド プロシージャの外部で宣言ステートメントを使用できないと思います。LOAD DATA ステートメントを使用しているため、ストアド プロシージャを使用できません。

何をすべきか?これはチェックメイトですか?

4

2 に答える 2

1

確かにできません。クエリが Workbench で機能する場合、これは .net のバグのようです。バッククォート (@ の後と Analyzed の後... 申し訳ありませんが、スタック オーバーフローの自動書式設定では、私が何を意味するかを示すことができません) を使用したり、変数の名前を変更したりするなど、「ばかげた」解決策を試すことをお勧めします。

于 2013-04-24T08:49:26.737 に答える
0

ADO.NETでMySQLユーザー変数を使用する方法に は、これに対する答えがあるようです。接続文字列に「ユーザー変数を許可する」を追加する必要がありました

于 2013-04-26T01:52:45.973 に答える