Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 分析查询时出错。[令牌行编号=1,令牌行偏移量=13,令牌错误=顺序]_C#_Sql_Visual Studio 2010 - Fatal编程技术网

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]”。