ここでのシナリオは HttpContext.Current.Session["value"].ToString() で、ユーザーのログイン時にすでにセッション値が設定されていても、null 値を返します。
私のウェブ設定
<sessionState timeout="40" mode="InProc"/>
私のglobal.asax
void Session_Start(object sender, EventArgs e)
{
// Code that runs when a new session is started
Session["EmployeeId"] = "";
this.Session["DomainName"] = "";
}
私の Defaultpage.asppx.cs で
Emp_grade empgrd = new Emp_grade();
オブジェクトのインスタンスに設定されていないオブジェクト参照を与える
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.Configuration;
public partial class EmpGrade : System.Web.UI.Page
{
//here am getting error(The type initializer for 'Emp_grade' threw an exception)
// stack error message Object reference not set to an instance of an object.
Emp_grade empgrd = new Emp_grade();
protected void Page_Load(object sender, EventArgs e)
{
logic code...
Datatable dt= empgrd.EmpRecord();
}
}
私App_Code folder
にはクラスファイルがありますEmp_grade.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
using System.Web.Configuration;
using System.Web.SessionState;
public class Emp_grade
{
public Emp_grade()
{
//TODO: Add constructor logic here
}
static string getConnection = HttpContext.Current.Session["DomainName"].ToString();
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[getConnection].ConnectionString);
public DataTable EmpRecord()
{
logic code
}
}
私のログインページ:
protected void Page_Load(object sender, EventArgs e)
{
//set some value
Session["DomainName"] = domainname;
}
スクリーンショット(デバッグ)