我有一个用 C# 编写的方法,它试图将 .CSV 文件中的数据复制到如下所示的 MySQL 表中;
public void writeToMySQL()
{
string constr = ConfigurationManager.ConnectionStrings["sqlString"].ConnectionString;
using (MySqlConnection sqlCon = new MySqlConnection(constr))
{
try
{
sqlCon.Open();
MySqlCommand sqlCmd = new MySqlCommand("LOAD DATA INFILE 'test.csv' INTO TABLE sdcdbftest.importexport;", sqlCon);
sqlCmd.ExecuteNonQuery();
}
catch (MySqlException)
{
throw;
}
}
}
然而,实际情况是仅复制了 .CSV 文件第一列的数据,没有其他内容。 .CSV 文件看起来像这样;
最后,这是通过 phpMyAdmin 在数据库中构造表的方式;
为什么只复制第一列 (cs_id) 有什么明显的原因吗?
最佳答案
来自 the documentation , LOAD DATA INFILE...
命令的默认列终止符是制表符 (\t
)。因此,您需要指定在命令中使用逗号,如下所示:
LOAD DATA INFILE 'test.csv'
INTO TABLE sdcdbftest.importexport
FIELDS TERMINATED BY ',';
关于C# 导入 .CSV 数据到 MySQL 表只复制 1 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32907400/