当我在注册表上单击"提交"时出现此错误 -
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中的一个保留字。
可以通过在查询中将Table
放在方括号 ([]( 内来避免此错误:
string checkuser = "select count(*) from [Table] where UserName='" + TextBoxUN.Text +"'";
然而,这并没有解决真正的问题——设计。您有一个名为Table
的表。 您应该强烈考虑根据其用途(例如,"学生"、"销售"等(为其指定一个真实名称。
安全
此外,您还存在一个 SQL 注入漏洞。 您应该查找这意味着什么以及如何参数化查询。