C# c语言:尝试使用c将参数保存到MySql数据库时出错#
我在C#程序中使用MySql数据库。 下面是我的代码,当我执行下面的方法时,它会抛出一个异常“MySql语法异常” 请帮我找出错误。如果需要任何进一步的信息来解决此问题,请让我知道 如果你们能帮我,我会很高兴的C# c语言:尝试使用c将参数保存到MySql数据库时出错#,c#,mysql,C#,Mysql,我在C#程序中使用MySql数据库。 下面是我的代码,当我执行下面的方法时,它会抛出一个异常“MySql语法异常” 请帮我找出错误。如果需要任何进一步的信息来解决此问题,请让我知道 如果你们能帮我,我会很高兴的 private void btnVerify_Click(object sender, EventArgs e) { con.Open(); try { string cmdText = "INSE
private void btnVerify_Click(object sender, EventArgs e)
{
con.Open();
try
{
string cmdText = "INSERT INTO cheque(customer_name, national_id, drawn_bank, chq_number, bnk_br_code, ac_number, drawndate, amount, commission_rate, commission, order, recieved_date, due_date, reminder_date, chq_image_frnt, chq_image_back) VALUES(@customer_name,@national_id,@drawn_bank,@chq_number,@bnk_br_code,@ac_number,@drawndate,@amount,@commission_rate,@commission,@order,@recieved_date,@due_date,@reminder_date,@chq_image_frnt,@chq_image_back)";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
cmd.Parameters.AddWithValue("@customer_name", txtCustomerName.Text);
cmd.Parameters.AddWithValue("@national_id", txtIDNumber.Text);
cmd.Parameters.AddWithValue("@drawn_bank", txtDrawnBank.Text);
cmd.Parameters.AddWithValue("@chq_number", txtChqNo.Text);
cmd.Parameters.AddWithValue("@bnk_br_code", txtBnkBrCode.Text);
cmd.Parameters.AddWithValue("@ac_number", TxtAcNo.Text);
cmd.Parameters.AddWithValue("@drawndate", dateTimePickerDrawnDate.Text);
cmd.Parameters.AddWithValue("@amount", TxtAmount.Text);
cmd.Parameters.AddWithValue("@commission_rate", txtCommissionRate.Text);
cmd.Parameters.AddWithValue("@commission", txtCommission.Text);
cmd.Parameters.AddWithValue("@order", Ordercb.Text);
cmd.Parameters.AddWithValue("@recieved_date", dateTimePickerRecieved.Text);
cmd.Parameters.AddWithValue("@due_date", dateTimePickerDue.Text);
cmd.Parameters.AddWithValue("@reminder_date", dateTimePickerReminder.Text);
cmd.Parameters.AddWithValue("@chq_image_frnt", picChqFrnt.Image);
cmd.Parameters.AddWithValue("@chq_image_back", picChqBack.Image);
cmd.ExecuteNonQuery();
MessageBox.Show("Cheque has been inserted to the database");
ClearData();
con.Close();
}
catch (MySqlException x)
{
MessageBox.Show(x.Message);
}
}
是的,这是因为在MySQL中,
order
是一个保留字,需要使用类似backtique的方法进行转义
string cmdText = "INSERT INTO cheque(customer_name, national_id, drawn_bank, ..., `order`,...
这就是错误所说的正确语法,使用接近“顺序,received_date
帮你自己一个忙,停止使用保留字和关键字作为表名或列名,以后不要再使用这个问题了在支票(和
值)中添加一些额外的空格,如(
您还没有说明它是如何失败的。添加picChqFrnt.Image作为参数不会插入图像,您可能最终会得到它的ToString。MySQL语法错误消息继续说…为了正确的语法使用nearsomething
。这就是您需要找出错误的线索。“您的SQL语法有错误;请查看与您的MySql服务器版本相对应的手册,以了解使用“订单、收到日期、到期日期、提醒日期、chq_image\frn、chq_image\u back)V”在第1行的正确语法”这是错误哦,非常感谢。它有效。我接受您的建议。:D