2017-03-15 9 views
1

空の文字列に値を格納できるようにするには、これらの値を取得するselect文がありますが、 'sessionVar'と 'sessionVarAddress'に格納する方法がわかりません。ここに私のコードです:選択値をセッション変数に保存するにはどうすればよいですか?

MySqlCommand select = new MySqlCommand("SELECT personID, address_addressID from person WHERE email='" + emailAddress + "' and password = '" + passwordR + "'", connect); //brings back the person ID if user details are correct 

using (MySqlDataReader reader = select.ExecuteReader()) //executes the SQL statement 
{ 
    if (reader.HasRows) 
    { 
     string sessionVarAddress = ""; 
     Session["address_addressId"] = sessionVarAddress; 

     string sessionVar = "";     
     Session["personID"] = sessionVar; 

     // other code 
    } 
} 

答えて

1

は、あなたは

if (reader.Read()) 
{ 
    Session["address_addressId"] = reader["address_addressId"].ToString(); 
    Session["personID"] = reader["personID"].ToString() 
} 

はできるだけ早くにどのように検索を行ってください、と言わ MySqlDataReaderに含まれる値を読み、自分のセッションに割り当てる必要がありますパラメータ化されたクエリを使用します。あなたのコードは実際には弱く、ハッキング(SQLインジェクション)の脆弱性があり、データベースに渡された値に単一引用符を使用すると、クラッシュする傾向があります(解析中)

string commandText = @"SELECT personID, address_addressID 
         from person WHERE [email protected] and password = @pwd"; 
MySqlCommand select = new MySqlCommand(commandText, connect); 
select.Parameters.Add("@email", MySqlDbType.VarChar).Value = emailAddress; 
select.Parameters.Add("@pwd", MySqlDbType.VarChar).Value = passwordR; 
using (MySqlDataReader reader = select.ExecuteReader()) 
{ 
    ..... 
関連する問題