语句中查询表达式中的语法错误(缺少运算符)

本文关键字:运算符 错误 语法 查询 查询表 表达式 语句 | 更新日期: 2023-09-27 18:06:13

     sqlStatement = "select Price from OrderItem where orderId=" + orderId;
            myAccessCommand = new OleDbCommand(sqlStatement, myAccessConn);
            myDataAdapter = new OleDbDataAdapter(myAccessCommand);
            myDataAdapter.Fill(myDataSet, "OrderItem");`DataTableCollection dta = myDataSet.Tables;
            DataColumnCollection drc = myDataSet.Tables["Orders"].Columns;
            DataRowCollection dra = myDataSet.Tables["Orders"].Rows;
            foreach (DataRow dr in dra)
            {
                orderId= dr[0].ToString();
                Checkintime= dr[1].ToString();
                RoomPrice= dr[2].ToString();
                ReceiptNo= dr[3].ToString();
                Console.WriteLine("orderId: " + orderId + ", Checkintime:  " + Checkintime + ", RoomPrice: " + RoomPrice + ", ReceiptNo: " + ReceiptNo + "");
            }`

我有一个语法错误,说"语法错误(缺少操作符)在查询表达式'orderId='"。}

我似乎找不到错误。

语句中查询表达式中的语法错误(缺少运算符)

问题的根本原因是您没有使用参数化查询,而是试图动态地创建一个sql字符串。因此,在该字符串的汇编代码中会出现错误。但是,如果使用参数化查询,遇到类似问题的机会就会低得多,因为您不必纠结于引号、数字到字符串的转换等问题。最重要的是,如果你使用参数,你就不会有sql注入攻击,而且它也使代码更具可读性。

阅读http://www.dotnetperls.com/sqlparameter了解如何以正确的方式使用参数化查询,而不仅仅是修复querystring中的文本错误。这不是应该这样做的。

这也是一个很好的解释:http://www.dreamincode.net/forums/topic/268104-parameterizing-your-sql-queries-the-right-way-to-query-a-database/