关键字';附近的语法不正确;订单';-顺序是列名

本文关键字:顺序 订单 语法 关键字 不正确 | 更新日期: 2023-09-27 18:00:37

我一直得到以下异常:

Incorrect syntax near the keyword 'Order'.

我有一个列为NameCreditsExtensionOrder的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]"