C#将.CSV数据导入MySQL表只复制1列

时间:2015-10-02 12:40:15

标签: c# mysql .net csv

我有一个用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文件看起来像这样;

enter image description here

最后,这是通过phpMyAdmin在数据库上构建表的方式;

enter image description here

有没有明显的理由说明为什么只复制第一列(cs_id)?

1 个答案:

答案 0 :(得分:3)

the documentation开始,LOAD DATA INFILE...命令的默认列终止符是制表符(\t)字符。因此,您需要在命令中指定使用逗号,如下所示:

LOAD DATA INFILE 'test.csv' 
    INTO TABLE sdcdbftest.importexport 
    FIELDS TERMINATED BY ',';