繁体   English   中英

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

[英]Syntax error (missing operator) in query expression in statement

     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 ,了解如何使用参数化查询应采用的方式,而不仅仅是解决查询字符串中的文本错误。 这不是应该完成的方式。

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

暂无
暂无

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

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