用户代码未处理System.Data.SqlClient.SqlException

时间:2014-04-23 09:33:41

标签: c#

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString);
conn.Open();
string checkUser = " select count(*) form Userdata where Username='" + TextBoxUN.Text + "' ";
SqlCommand cmd = new SqlCommand(checkUser,conn);

if (temp==1)
{
    Response.Write("User Already Exists");
}
conn.Close();
  

System.Data.SqlClient.SqlException未被用户代码处理   HResult = -2146232060消息='Userdata'附近的语法不正确

int temp= Convert.ToInt32(cmd.ExecuteScalar().ToString());

1 个答案:

答案 0 :(得分:1)

错误消息显示:

  

'Userdata'

附近的语法不正确

这告诉你SQL解析器放弃了单词Userdata,因为语法不再有意义,这通常意味着实际错误在该单词之前就已接近。

如果你查看查询的那一部分:

select count(*) form Userdata

Userdata之前的单词是form,但您应该认识到您打算写的不是关键字from


旁注(但重要的一点):您在查询中连接的值未正确转义,因此代码对SQL注入攻击持开放态度。您应该使用参数将值放入查询中:

string checkUser = "select count(*) from Userdata where Username = @Username";
SqlCommand cmd = new SqlCommand(checkUser,conn);
cmd.Parameters.AddWithValue("@Username", TextBoxUN.Text);