【问题标题】:MYSQL SQL syntax error c#MYSQL SQL语法错误c#
【发布时间】:2015-09-19 08:31:27
【问题描述】:

我的 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();

在这张图片中,错误和账单表结构:

【问题讨论】:

    标签: c# mysql sql


    【解决方案1】:

    一个问题是您用作列的词 byreserved keyword(在 MySQL 和一般的 SQL 标准中)。要使用它,您必须将其括在反引号``或双引号“”中。

    此外,字符串值需要在适用的单引号之间,但我想你明白了。

    附带说明,您应该考虑使用参数化查询而不是连接。看这个问题的例子:C# with MySQL INSERT parameters

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        您的字符串值必须在 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 + "\"...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-11
          • 1970-01-01
          • 1970-01-01
          • 2012-01-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多