繁体   English   中英

MYSQL SQL语法错误C#

[英]MYSQL SQL syntax error c#

我的SQL语句中有错误。 这是查询:

 MySqlCommand cmd = new MySqlCommand("insert into bills (bill_Number,bill_Date,bill_From,bill_Note,bill_TaxRate,bill_DisRate,bill_EntryDate,cus_Sup,by,archived) values(" + txbBillNumber.Text + ",'" + DateTime.Parse(txbBillDate.Text).Year + "-" + DateTime.Parse(txbBillDate.Text).Month + "-" + DateTime.Parse(txbBillDate.Text).Day + "'," + sup_Id + ",'" + txb_Note.Text + "'," + taxRate + "," + disRate + ",'" + DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day + "'," + Bills.cus_Sup + ",0,0)", objConn);
                        cmd.ExecuteNonQuery();

在此图像中,错误和票据表结构如下: Screebshot1

一个问题是,用作列的by这个词是保留关键字 (在MySQL和SQL标准中都是这样)。 要使用它,您必须将其用反引号``或双引号“”引起来。

另外,在适用的情况下,字符串值必须在单引号之间,但我想您已经明白了。

附带说明,您应该研究使用参数化查询而不是串联查询。 参见以下示例示例: 具有MySQL INSERT参数的C#

您的字符串值必须用SQL语句括在引号中,例如: MySqlCommand cmd = new MySqlCommand("insert into bills (bill_Number,bill_Date,bill_From,bill_Note,bill_TaxRate,bill_DisRate,bill_EntryDate,cus_Sup,by,archived) values(\\"" + txbBillNumber.Text + "\\"...

我的第一个想法是,“ by”是保留字,“ by”需要封装在单引号/双引号中……无论mysql需要什么。 这是来自sql server的经验。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM