当我执行此操作时,它会发出致命错误,我的数据库中没有任何内容。有人请帮忙。但是,当我使用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();
}
}
答案 0 :(得分:1)
你没有提到确切的错误是什么。但我认为这是因为您在参数中使用的是?
而不是@
。
例如,将?Student_FName
更改为@Student_FName
将连接字符串写为
string myConn = "Server=localhost;Port=3306;Database=DBName;Uid=UserName;Pwd=Password;"
此外,我将参数视为“电子邮件”,我想这是一个错字。它应该是“E_mail”。