【发布时间】:2014-08-21 10:39:21
【问题描述】:
我正在使用 MySQL LOAD DATA INFILE Data 命令向表中批量插入数据。这是我的做法:
LOAD DATA INFILE 'MyFile.csv' INTO TABLE `dbname`.`tablename` FIELDS TERMINATED BY '\t' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' ;
当我从我们的 C# 项目运行它时,我得到一个 char(50) 列的Data too long for column xxx 异常,它提供的数据小于 50(但它是波斯语)但是当我使用 MySql SQLyog 等客户端工作正常。
这是我运行此命令的方式:
private static void RunCommand(string command,params object[] args)
{
if (args != null)
command = string.Format(command, args);
using (var conn = MySqlClientFactory.Instance.CreateConnection())
{
if (conn == null) return;
conn.ConnectionString =
"Server=localhost;Uid=root;Pwd=123456; AutoEnlist=false;Charset=utf8;";
conn.Open();
using (var comm = conn.CreateCommand())
{
comm.CommandText = command;
comm.ExecuteNonQuery();
}
}
}
我猜这可能是转换Unicode 字符的问题,但我不知道如何让它正确运行。
【问题讨论】:
-
尝试在
LOAD DATA INFILE...语句中添加CHARACTER SET utf8参数。
标签: c# mysql bulkinsert