关键字';附近的语法不正确;订单';-顺序是列名
本文关键字:顺序 订单 语法 关键字 不正确 | 更新日期: 2023-09-27 18:00:37
我一直得到以下异常:
Incorrect syntax near the keyword 'Order'.
我有一个列为Name
、Credits
、Extension
、Order
的TABLE。CCD_ 5属于CCD_。现在,当我转到INSERT
这个表中的一条记录时,它会给出上面的异常。
我已经把它放在try/catch块中并捕获了异常,我设置了断点,除了上面的消息之外,它不会显示任何。
有人能帮忙解释一下吗?我坐在这里,搔着头,想知道到底发生了什么,我就是搞不清楚。我看不出哪里出了问题。
try
{
// Insert into database
sqlconnection = new SqlConnection(@"Data Source=sblah blah blah... intentionally removed;");
sqlconnection.Open();
using (var command = new SqlCommand("Insert Into Images(Name, Credits, Extension, Order) VALUES (@Name, @Credits, @Extension, @Order)", sqlconnection))
{
command.CommandTimeout = 240;
command.Parameters.AddWithValue("Name", workingPicture.Properties.Filename);
command.Parameters.AddWithValue("Credits", workingPicture.Properties.Credits);
command.Parameters.AddWithValue("Extension", workingPicture.Properties.Extension);
command.Parameters.AddWithValue("Order", workingPicture.Properties.Order);
command.ExecuteNonQuery();
doneUpdatingDB = true;
}
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
doneUpdatingDB = false;
}
Order
的值为0
。
ORDER
是SQL Server中的一个保留关键字。如果你想把它用作列名,你必须把它放在方括号里:
"Insert Into Images(Name, Credits, Extension, [Order]) VALUES (@Name, @Credits, @Extension, @Order)"
最好避免使用保留关键字来命名对象(表、列、存储的进程等)。
Order是SQL中的关键字,更改DB中字段的名称或在Order关键字周围设置[],如"[Order]"