簡體   English   中英

如何從數據庫獲取值

[英]How can I get values from database

我試圖通過兩個where子句從訪問數據庫中獲取值。 這是我得到的錯誤! "Syntax error (missing operator) in query expression 'unit1<=34 and unit2>=34 where"'

這是我的代碼:

OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\\Work\\Office\\Electricity_Board_bill_calculator\\gk.accdb;");
con.Open(); 
OleDbCommand com5 = new OleDbCommand("select id from tblBillConfig where  unit1<=" 
          + contot + " and unit2>=" + contot + " where group=3 ", con);

您在SQL字符串的2個位置中有“ where”。 這至少是導致錯誤的原因之一。

有兩個潛在的問題:

  • 您不能有2個where子句。 第二個過濾器需要與和一起引入
  • Group是保留關鍵字,因此需要轉義。 (這將是Sql Server中的[group] 。我不確定如何在MS Access中執行此操作)

您還應該查看使用參數綁定變量 這解決了很多問題,例如sql注入,並且還提高了性能,因為參數化可能允許您的RDBMS緩存查詢計划。

因此,您的查詢應如下所示:

var com5 = new OleDbCommand("select id from tblBillConfig " +
                            " where unit1<=? and unit2>= ? and [group]=3 ", con);
command.Parameters.Add("@p1", OleDbType.Integer).Value = 34;
command.Parameters.Add("@p2", OleDbType.Integer).Value = 34;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM