2017-02-25 79 views
1

电子邮件列在表中的第4位 而数据类型为varchar con.Open();通过单qoutes多部分标识符[email protected]无法绑定

cmd = new SqlCommand("select * from UserInfo where EMail='" + EMail + "', con); 

没有单个qoutes界定

cmd = new SqlCommand("select * from UserInfo where EMail=" + EMail + "", con); 
    SqlDataReader dr; 

    dr =cmd.ExecuteReader();//here I get error 
    while (dr.Read()) 
    { 

     lblCustName.Text = dr[1].ToString(); 
     lblAddress.Text = dr[2].ToString(); 
     lblMobNo.Text = dr[3].ToString(); 

     lblEMail.Text = dr[4].ToString(); 
     //con.Close; 

    } 

回答

0

通行证参数,所述resuktant查询出来是

select * from UserInfo where [email protected] 

其中值[email protected]是被视为tableName.columnName给出错误多部分标识符不能被绑定。

如果您使用参数化查询来避免SQL注入攻击而不是直接将值传递给查询,那么它更好。

cmd = new SqlCommand("select * from UserInfo where [email protected]", con); 
cmd.Parameters.Add("@Email",SqlDbType.Varchar,1000).Value = Email; 
+0

感谢它的工作 –

相关问题