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 错误。我建议您尝试“愚蠢”的解决方案,例如使用反引号(在 @ 之后和已分析之后......对不起,堆栈溢出自动格式化不允许我向您展示我的意思)或更改变量的名称。

于 2013-04-24T08:49:26.737 回答
0

How to use MySQL user-variables with ADO.NET 似乎有答案我需要在连接字符串中添加“允许用户变量”

于 2013-04-26T01:52:45.973 回答