Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 列计数与第1c行的值计数不匹配_C#_Mysql - Fatal编程技术网

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

C# 列计数与第1c行的值计数不匹配,c#,mysql,C#,Mysql,我不知道为什么会出现此错误: C代码: using (MySqlConnection connection = new MySqlConnection("datasource=localhost;port=3306;database=project;username=***;password=***;")) { MySqlCommand cmd = new MySqlCommand("INSERT INTO student (studentID, studentFi

我不知道为什么会出现此错误:

C代码:

using (MySqlConnection connection = new MySqlConnection("datasource=localhost;port=3306;database=project;username=***;password=***;"))
{
MySqlCommand cmd = new MySqlCommand("INSERT INTO student (studentID, studentFirstName, studentLastName, studentUserName, studentPassword) VALUES (@userID, @, @FirstName, @LastName, @Username, @Password);");
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
cmd.Parameters.AddWithValue("userID", Convert.ToInt32(textBoxUserID.Text));
cmd.Parameters.AddWithValue("@FirstName", textBoxFirstName.Text);
cmd.Parameters.AddWithValue("@LastName", textBoxLastName.Text);
cmd.Parameters.AddWithValue("@UserName", textBoxUsername.Text);
cmd.Parameters.AddWithValue("@Password", textBoxPassword.Text);
connection.Open();
cmd.Connection = connection;
cmd.ExecuteNonQuery();
MessageBox.Show("Saved");
connection.Close();
}
这可能是因为我忽略了什么

错误:

MySql.Data中发生类型为“MySql.Data.MySqlClient.MySqlException”的未处理异常

其他信息:列计数与第1行的值计数不匹配


您正在values子句@userID@中添加一个附加参数

还要添加@before用户id

cmd.Parameters.AddWithValue("userID", Convert.ToInt32(textBoxUserID.Text));
应该是

cmd.Parameters.AddWithValue("@userID", Convert.ToInt32(textBoxUserID.Text));
格式化您的代码,您将清楚地看到所有语法问题:

string connectionString = 
  "datasource=localhost;port=3306;database=project;username=***;password=***;";

using (MySqlConnection connection = new MySqlConnection(connectionString)) {
  connection.Open();

  //DONE: keep sql readable
  string sql = 
    @"INSERT INTO student (
         studentID, 
         studentFirstName, 
         studentLastName, 
         studentUserName, 
         studentPassword) 
      VALUES (
         @userID, 
         @FirstName, -- wrong @ param 
         @LastName, 
         @Username, 
         @Password);";

  //DONE: wrap IDisposable into using
  using (MySqlCommand cmd = new MySqlCommand(sql)) {
    cmd.CommandType = CommandType.Text; // redundant
    cmd.Connection = connection;

    //DONE: separate code with new lines
    // wrong parameter name
    cmd.Parameters.AddWithValue("@userID", Convert.ToInt32(textBoxUserID.Text));
    cmd.Parameters.AddWithValue("@FirstName", textBoxFirstName.Text);
    cmd.Parameters.AddWithValue("@LastName", textBoxLastName.Text);
    cmd.Parameters.AddWithValue("@UserName", textBoxUsername.Text);
    cmd.Parameters.AddWithValue("@Password", textBoxPassword.Text);

    cmd.ExecuteNonQuery();
  } 
}

MessageBox.Show("Saved");

谢谢这有助于一种非常不言自明的洗液。。你想让我用勺子喂你所有的东西吗..返回的错误消息是很自然的。不,我不想你做任何事。