c# - 使用变量加载数据 INFILE

标签 c# mysql load-data-infile

我试图将 LOAD DATA INFILE 用作存储过程,但它似乎无法完成。然后我尝试了像这样将代码嵌入到应用程序本身的常用方法,

conn = new MySqlConnection(connStr);
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd = conn.CreateCommand();
string tableName = getTableName(serverName);
string query = "LOAD DATA INFILE '" + fileName + "'INTO TABLE "+ tableName +" FIELDS TERMINATED BY '"+colSep+"' ENCLOSED BY '"+colEncap+"' ESCAPED BY '"+colEncap+"'LINES TERMINATED BY '"+colNewLine+"' ("+colUpFormat+");";
cmd.CommandText = query;
cmd.ExecuteNonQuery();
conn.Close();

保存在字符串变量查询中的生成查询是,

        LOAD DATA INFILE 'data_file.csv'INTO TABLE tbl_shadowserver_bot_geo FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"'LINES TERMINATED BY '\n' (timestamp,ip,port,asn,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,url,agent,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy);

但是现在当我运行这个程序时它给出了一个错误提示,

        MySQLException(0x80004005) Parameter @dummy must be defined first.

我不知道如何解决这个问题,但是当我直接在 mysql 本身上使用相同的查询时,它工作正常。请帮助我..非常感谢你:)

最佳答案

我自己找到了解决方案,就是设置这个条件,

      Allow User Variables=true;

在允许在查询中使用@parameter 值的连接字符串中:)

感谢您的回复:)

关于c# - 使用变量加载数据 INFILE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12834675/

相关文章:

c# - DataMember Name 属性在 Entity Framework 中不起作用

c# - 代码隐藏找不到在 XAML 中声明的控件

php - 嵌套循环在 INSERT 时间内无法正常工作

MySQL查询将数据从一个表随机复制到另一个表

c# - 如何在 SQL Server 2005 中执行服务器端分页

c# - 在 LINQ 中获取不同值的更快方法?

php - 使用sqli php动态生成html

MySQL:LOAD DATA INFILE 语法错误 1064

php - 使用php在mysql中加载没有文件的数据infile

MYSQL LOAD DATA INFILE Syntax Error - 哪里错了?