Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-将数据填充加载到mysql-致命错误_C#_Mysql_Sql_Visual Studio_File - Fatal编程技术网

C#-将数据填充加载到mysql-致命错误

C#-将数据填充加载到mysql-致命错误,c#,mysql,sql,visual-studio,file,C#,Mysql,Sql,Visual Studio,File,我试图将数据加载到mysql表中,当我在mysql工作台中运行代码时,它工作正常,但当我尝试在我的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 INFIL

我试图将数据加载到mysql表中,当我在mysql工作台中运行代码时,它工作正常,但当我尝试在我的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。
当我删除它时,代码会工作(在我的例子中它不工作,因为如果没有它,它会尝试将数据放入主键),但它不会显示第一个错误


感谢…

MySql.Data将
@col2
@col3
视为(未定义的)查询参数,这导致了此错误。一种解决方法是将
AllowUserVariables=true
添加到连接字符串中

另一种解决方法是避免使用变量,直接加载到所需的列中:

LOAD DATA INFILE 'C://time_u.txt'
INTO TABLE time
CHARACTER SET 'utf8'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(date, hour);

旁注:
从时间中删除;alter table time auto_increment=1
可以更好地替换为
truncate table time
@RaymondNijland感谢您的回复,我将尝试使用其他方法执行。我不相信运行MySQL客户端的ExecuteOnQuery()支持多个用Semicos(
)分隔的语句@RaymondNijland我试图只执行加载数据代码,但它给了我同样的错误。你试过一步一步地执行命令吗?删除,然后更改,然后加载数据。。。下一个测试可能是合并delete和alter语句。还是会出错?抛出了什么异常?Stacktrace?终于用你的第二个解决方法让它工作了。非常感谢你!!