我有一个用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)?
答案 0 :(得分:3)
从the documentation开始,LOAD DATA INFILE...
命令的默认列终止符是制表符(\t
)字符。因此,您需要在命令中指定使用逗号,如下所示:
LOAD DATA INFILE 'test.csv'
INTO TABLE sdcdbftest.importexport
FIELDS TERMINATED BY ',';