2013-10-31 53 views
0

我收到錯誤,這裏有什麼問題?分析查詢時出錯

SqlCeCommand com5 = new SqlCeCommand("SELECT MAX(OrderID) AS Expr1 FROM Order_Details)", con); 
SqlCeDataReader dr5 = com5.ExecuteReader(); // Catches Ex here 
while (dr5.Read()) 
{ 
    orderID = Convert.ToInt32(dr[0]); 
} 

我使用SQLCeVS2012WPFC#

唯一的例外是

$例外{ 「發生錯誤解析查詢。[令牌行號= 1,令牌行偏移= 62,令牌在錯誤=)]」} System.Exception的{System.Data.SqlServerCe.SqlCeException}`

查詢正確,但這些查詢不會更新我的數據庫,您可以查看它嗎?

SqlCeCommand com3 = new SqlCeCommand("INSERT INTO Order_Details(Discount, TotalPrice, TotalTax) VALUES(@Discount, @TotalPrice, @TotalTax)", con); 
       com3.Parameters.AddWithValue("@Discount", discount); 
       com3.Parameters.AddWithValue("@TotalPrice", gTotal); 
       com3.Parameters.AddWithValue("@TotalTax", totalIndividualTax); 

回答

1

取出)你有FROM Order_Details部分後,一個額外的支架)。只要刪除它。

將其更改爲;

SqlCeCommand com5 = new SqlCeCommand("SELECT MAX(OrderID) AS Expr1 FROM Order_Details", con); 
SqlCeDataReader dr5 = com5.ExecuteReader(); // Catches Ex here 
while (dr5.Read()) 
{ 
    orderID = Convert.ToInt32(dr[0]); 
} 

順便說一句,我不明白你爲什麼在這裏使用ExecuteReader。既然你只是返回一列,使用ExecuteScalar會更好。

例如;

SqlCeCommand com5 = new SqlCeCommand("SELECT MAX(OrderID) AS Expr1 FROM Order_Details", con); 
orderID = (int)com5.ExecuteScalar(); 
+1

謝謝@Soner,你是對的。我只是一個複製粘貼人。我在這裏瞭解知識。並感謝那額外的知識。 – Kamal

2

SELECT MAX(OrderID) AS Expr1 FROM Order_Details) 
               ^--here 
1

刪除括號這裏:

SqlCeCommand com5 = new SqlCeCommand("SELECT... Order_Details)", con); 
                  ^