2017-04-13 14 views
0
string email = System.Web.HttpContext.Current.Session["email"].ToString(); 

私は自分のセッション内に保存されている値を取得できるコードabのようなことをしようとしています。私はすでにaspx.csファイルにstring email = (string)(Session["email"]);を実行しており、セッションに保存されている電子メールを返してきました。aを取得しようとすると、セッション変数をaspxの文字列に変換します。クラスファイル

私は今、どのようにクラスファイル上で行うことができるのだろうかと思っています。

これはこれは

public int countBasketItems() 
{ 

    int counter = 0; 
    string email=""; 

    String CS = System.Configuration.ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString; 
    using (SqlConnection con = new System.Data.SqlClient.SqlConnection(CS)) 
    { 
     email = (string) HttpContext.Current.Session["email"]; 
     SqlCommand cmd = new SqlCommand("select Count(*) from basket where email = '" + email + "'", con); 
     con.Open(); 
     counter = (int)cmd.ExecuteScalar(); 
    } 
    return counter; 

} 

答えて

0

あなたが動作するはずです使用している方法を動作します

public int countBasketItems() 
{ 

    int counter = 0; 

    String CS = System.Configuration.ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString; 
    using (SqlConnection con = new System.Data.SqlClient.SqlConnection(CS)) 
    { 
     string email = HttpContext.Current.Session["email"].ToString(); 
     SqlCommand cmd = new SqlCommand("select Count(*) from basket where email = '" + email + "')", con); 
     con.Open(); 
     counter = (int)cmd.ExecuteScalar(); 
    } 
    return counter; 

} 

動作しません。 クラスファイル内でSystem.webをインポートしていることを確認してください 次に、クラスでHttpContextにアクセスできるようになり、現在のセッション(httpcontext.current.session)にアクセスできるようになります。

私はこの方法をWebアプリケーションで自分自身を誤りなく使用します。 私は、同じソリューション内でプロジェクト間でフォルトなしに正確な方法を使用するクラスファイルを持っています。

+0

これはエラー>>オブジェクト参照がオブジェクトのインスタンスに設定されていません。 –

+0

質問は回答として投稿されていない、コメントとして尋ねられるべきです。コメントを投稿するのに十分な担当者がいない場合は、あなたがするまで質問/回答してください。 – Equalsk

+0

レビューのためにクラスファイルからコードをポストすることもできますか?クラスファイルへのアクセスを持っていないことを意味するclassファイルにsystem.webをインポートしないように、 httpcontext。 @エスクルスク - 申し訳ありませんが、私は答えが悪い熟語を推測するように私の答えを編集します。 – IDED

関連する問題