2017-02-25 16 views
1

電子メール列はテーブルのno 4にあります データ型はvarchar con.Open()です。単一qoutesない単一qoutesマルチパート識別子[email protected]はバインドできませんでした

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

によって囲ま

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クエリは

[email protected]がされる
select * from UserInfo where [email protected] 

ことが出ていますエラーmultipart識別子を与えることができなかったtableName.columnNameとして処理されました。

クエリに直接値を渡すのではなく、SQLインジェクション攻撃を回避するためにパラメータ化されたクエリを使用する方が優れています。

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

ありがとうございます –

関連する問題