当我通过c#连接到mysql时,会出现致命错误

时间:2014-01-15 11:34:39

标签: c# mysql

当我执行此操作时,它会发出致命错误,我的数据库中没有任何内容。有人请帮忙。但是,当我使用2个文本框执行时,它工作正常。列名是相同的。

private void button1_Click(object sender, EventArgs e)
{
    string myConn = "server=localhost;database=check;uid=root;pwd=;";
    MySqlConnection conn = new MySqlConnection(myConn);
    try
    {
        conn.Open();
        String myInsertSQL ="INSERT INTO student VALUES(?Student_FName,?Student_LName,?Address_1,?Address_2,?DOB,?E-mail,?Batch_id,?Parent_FName,?Parent_LName)";
        MySqlCommand cmd = new MySqlCommand(myInsertSQL, conn);
        cmd.Parameters.AddWithValue("?Student_FName",textBox1.Text);
        cmd.Parameters.AddWithValue("?Student_LName",textBox2.Text);
        cmd.Parameters.AddWithValue("?Address_1",textBox3.Text);
        cmd.Parameters.AddWithValue("?Address_2",textBox4.Text); 
        cmd.Parameters.AddWithValue("?DOB",textBox5.Text);
        cmd.Parameters.AddWithValue("?E-mail",textBox6.Text);
        cmd.Parameters.AddWithValue("?Batch_id",textBox7.Text);
        cmd.Parameters.AddWithValue("?Parent_FName",textBox8.Text);
        cmd.Parameters.AddWithValue("?Parent_LName",textBox9.Text);
        cmd.ExecuteNonQuery();//when executing it gives a fatal error
    }
    catch (MySqlException ex)
    {
        MessageBox.Show(ex.Message);
    }
    finally
    {
        conn.Close();
    }
}

1 个答案:

答案 0 :(得分:1)

你没有提到确切的错误是什么。但我认为这是因为您在参数中使用的是?而不是@

例如,将?Student_FName更改为@Student_FName

将连接字符串写为

string myConn = "Server=localhost;Port=3306;Database=DBName;Uid=UserName;Pwd=Password;"

此外,我将参数视为“电子邮件”,我想这是一个错字。它应该是“E_mail”。