C# 分析查询时出错。[令牌行编号=1,令牌行偏移量=13,令牌错误=顺序]
表名为C# 分析查询时出错。[令牌行编号=1,令牌行偏移量=13,令牌错误=顺序],c#,sql,visual-studio-2010,C#,Sql,Visual Studio 2010,表名为顺序。并且,OrderID是它的列名。每次运行它,我都会得到一个异常 " There was an error parsing the query. [ Token line number = 1,Token line offset = 13, Token in error = Order ]" 请帮帮我。谢谢。列名称与代码中给出的名称相似 Int32 Product_ID = Convert.ToInt32(TxtProductId.Text); Int64 Order_ID = C
顺序
。并且,OrderID
是它的列名。每次运行它,我都会得到一个异常
" There was an error parsing the query. [ Token line number = 1,Token line offset = 13,
Token in error = Order ]"
请帮帮我。谢谢。列名称与代码中给出的名称相似
Int32 Product_ID = Convert.ToInt32(TxtProductId.Text);
Int64 Order_ID = Convert.ToInt32(TxtOrderNo.Text);
Int64 MoneyLeft = new int();
Int64 MoneyGiven = Convert.ToInt32(TxtAdvance.Text);
Int64 TotalMoney = Convert.ToInt32(LblTotalPrice.Text);
//Calculate Money left
MoneyLeft=TotalMoney-MoneyGiven;
string query = "INSERT INTO ORDER
(
OrderId,
OrderName,
OrderItemNo,
OrderQuantity,
OrderMoneyLeft,
OrderMoneyGiven,
OrderTotalMoney
)
VALUES
(
@val1,
@val2,
@val3,
@val4,
@val5,
@val6,
@val7
)";
Command.Connection = SQLConnection;
Command.CommandText = query;
Command.Parameters.Clear();
Command.Parameters.AddWithValue("@val1", Order_ID);
Command.Parameters.AddWithValue("@val2", TxtCustomerName.Text);
Command.Parameters.AddWithValue("@val3", Product_ID);
Command.Parameters.AddWithValue("@val4", TxtItemQuantity.Text.ToString());
Command.Parameters.AddWithValue("@val5", MoneyLeft);
Command.Parameters.AddWithValue("@val6",MoneyGiven);
Command.Parameters.AddWithValue("@val7", TotalMoney);
Command.ExecuteNonQuery();
我看到的第一件事,
ORDER
是T-SQL中的。您应该将其与方括号一起使用,如[ORDER]
。最好的解决方案是将表名更改为非保留字
但是在这种情况下,我很惊讶你没有得到任何不正确的语法靠近。。错误类型
除此之外,我们还需要知道列类型和参数值。我强烈怀疑OrderQuantity
列。根据它的名称,它听起来像一个数字类型的列。但是您传递了一个字符串作为参数
不要使用AddWithValue
方法。它可能会产生意想不到的结果。使用和它的重载。不要忘记使用来处理SQLConnection
和SqlCommand
阅读:我已将OrderQuantity列类型更改为int。我已使用[Order]。现在我正在使用.Add()及其重载。现在我得到了一个错误“该列无法修改。[column name=OrderId]”非常感谢Soner Gonul:)这个问题通过在Order周围使用[]解决了。我已经解决了这个问题,我已经自动增加了OrderId,因此我面临“无法修改列。[column name=OrderId]”。