我尝试将数据加载到mysql表中,当我在mysql workbench中运行代码时,它工作正常,但当我尝试在我的c应用程序中运行它时,出现以下错误:
Fatal error encountered during command execution.
这是我的密码:
mConn.Open(); //Opens the connection
string query = "delete from time; alter table time auto_increment=1; LOAD DATA INFILE 'C://time_u.txt' INTO TABLE `time` CHARACTER SET 'utf8' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 LINES (@col2, @col3) set date = @col2, hour = @col3;";
WriteDataToDataBase(query); //This guy just executes the command.ExecuteNonQuery();
mConn.Close();
ps:我有3列,第一列是我不能导入的主键(id),它需要自动增加1,第二列是日期(varchar),第三列是小时数(varchar)。
更新
我试图更改加载数据代码,发现出现错误的部分是: (@col2, @col3) set date = @col2, hour = @col3;
. 当我删除它时,代码可以工作(在我的例子中它不工作,因为如果没有它,它会尝试将数据放入主键),但是它不会显示第一个错误。
谢谢。。。
1条答案
按热度按时间yqyhoc1h1#
mysql.data正在处理
@col2
,@col3
作为(未定义的)查询参数,导致此错误。一种解决方法是添加AllowUserVariables=true
连接字符串。另一种解决方法是避免使用变量,直接加载到所需的列中: