C# 单击“提交”按钮时出现语法错误,我的SQL表出现问题,因此不知道是否可以链接它

C# 单击“提交”按钮时出现语法错误,我的SQL表出现问题,因此不知道是否可以链接它,c#,web,C#,Web,我在注册表上单击“提交”时出现此错误- System.Data.SqlClient.SqlException:“关键字“Table”附近的语法不正确。” 下面是我的代码: if(IsPostBack) { SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); conn.Open(); strin

我在注册表上单击“提交”时出现此错误-

System.Data.SqlClient.SqlException:“关键字“Table”附近的语法不正确。”

下面是我的代码:

if(IsPostBack)
{
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
    conn.Open();
    string checkuser = "select count(*) from Table where UserName='" + TextBoxUN.Text +"'";
    SqlCommand com = new SqlCommand(checkuser, conn);
    int count = Convert.ToInt32(com.ExecuteScalar());
    {
        Response.Write("User already Exists");
    }


    conn.Close();

正如MickyD和Dour High Arch在评论中指出的,“Table”在SQL中是一个保留字

您可以通过在查询中将
放在方括号([])内来避免错误:

string checkuser = "select count(*) from [Table] where UserName='" + TextBoxUN.Text +"'";
然而,这并没有解决真正的问题——设计。您有一个名为
table
的表。你应该强烈地考虑一个真实的名字,根据它将用于什么(例如,“学生”,“销售”等)。 安全
此外,您还存在SQL注入漏洞。您应该查看这意味着什么以及如何参数化查询。

可以用
[]
括起来。像这样:
[Table]
。可能不是表B的最佳名称,那么如果count为零呢?在有人创建类似于
Bobby'和'0'='
的用户名之前,您需要这样做。而
Table
是一个SQL保留字,您应该创建有意义的表名。啊,是的,添加到Steve的精彩评论中-您是否忘记了
if
语句?回答不错+1.