【问题标题】:Incorrect syntax near the keyword 'Table' C# SQL [closed]关键字'Table' C# SQL 附近的语法不正确 [关闭]
【发布时间】:2014-10-19 12:55:39
【问题描述】:

您好,我正在尝试找出为什么会出现此错误

关键字“表”附近的语法不正确。

提前谢谢

代码:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

namespace CSGObetsAdvisor
{
    public class SQLInsertData
    {
        public void InsertToSQL(string LoungeItemName)
        {
            string connectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=" + @"C:\Users\HP\documents\visual studio 2013\Projects\CSGObetsAdvisor\CSGObetsAdvisor\App_Data\Database.mdf" + ";Integrated Security=True";
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand cmd = new SqlCommand("INSERT INTO Table (ItemID,ItemName) VALUES (@ItemIDss,@Namess)");
                cmd.CommandType = CommandType.Text;
                cmd.Connection = connection;
                cmd.Parameters.AddWithValue("@ItemIDss", 50);
                cmd.Parameters.AddWithValue("@Namess", LoungeItemName);

                connection.Open();
                cmd.ExecuteNonQuery();
            }

        }


    }
}

服务器资源管理器:

【问题讨论】:

  • table 是 SQL 中的保留工作,因此对于表来说它是一个非常糟糕的名称。它应该被方括号包围在你坚持使用它insert into [table]。我投票结束这些类型的问题作为印刷错误。
  • 谢谢,我创建了新表,它现在可以工作了。

标签: c# sql database visual-studio sql-server-2008


【解决方案1】:

这是因为 TABLE 是 reserved keyword for T-SQL
如果您确实需要使用该名称,则您的查询应将 TABLE 括在方括号中

SqlCommand cmd = new SqlCommand(@"INSERT INTO [Table] 
                                  (ItemID,ItemName) VALUES 
                                  (@ItemIDss,@Namess)");

我强烈建议更改该名称并为该表的内容使用更具描述性的词

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2014-12-10
    相关资源
    最近更新 更多