C# 列计数与第1c行的值计数不匹配

C# 列计数与第1c行的值计数不匹配,c#,mysql,excel,C#,Mysql,Excel,我正在尝试将数据从xls加载到mysql数据库,但出现以下错误: Column count doesn't match value count at row 1 在这个循环中,我尝试从excel的第2列中迭代选择所有值,并将其插入db(不包括第一行),因为xls中的第一行是我的列的名称。行数是487 for (int x = 2; x < rowCount; x++) { string str = xlRange.Cells[x, 2].T

我正在尝试将数据从xls加载到mysql数据库,但出现以下错误:

Column count doesn't match value count at row 1
在这个循环中,我尝试从excel的第2列中迭代选择所有值,并将其插入db(不包括第一行),因为xls中的第一行是我的列的名称。行数是487

   for (int x = 2; x < rowCount; x++)
        {

            string str = xlRange.Cells[x, 2].Text;

            string query = "INSERT INTO feture (F1) VALUES (" + str + ")";
            MessageBox.Show(x.ToString());
            MySqlCommand cmd = new MySqlCommand(query, conect);
            cmd.ExecuteScalar();

        }

我哪里有问题?Thx

字符串值必须用单引号括起来

更改:

致:

您需要对值使用单引号,但更重要的是,您应该使用参数化查询,并安装字符串连接:

string query = "INSERT INTO feture (F1) VALUES (@value)";
MySqlCommand cmd = new MySqlCommand(query, conect);
cmd.Parameters.AddWithValue("@value", str);
cmd.ExecuteScalar();
如果您想知道为什么要对SQL注入进行一些研究

string query = "INSERT INTO feture (F1) VALUES ( '" + str + "' )";
string query = "INSERT INTO feture (F1) VALUES (@value)";
MySqlCommand cmd = new MySqlCommand(query, conect);
cmd.Parameters.AddWithValue("@value", str);
cmd.ExecuteScalar();