读书人

出现未将对象引用设置到对象的实例异常

发布时间: 2012-01-08 22:48:50 作者: rapoo

出现未将对象引用设置到对象的实例错误?
我想先把用户信息先绑定,再进行修改,可总出现出现未将对象引用设置到对象的实例错误,大家帮忙看一下这是什么意思
protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)
{
string str=Convert.ToString (Session["UserName"]);

DataTable dt = user.GetInformationByName(str);

this.lblpno.Text = dt.Rows[0][0].ToString();

this.lbltruename.Text = dt.Rows[0][1].ToString();

this.lblsex.Text = dt.Rows[0][2].ToString();
this.lbldepartment.Text = dt.Rows[0][3].ToString();

this.lblclassno.Text = dt.Rows[0][4].ToString();
this.txtemail.Text = dt.Rows[0][5].ToString();

this.lblrole1.Text = dt.Rows[0][6].ToString();

}}

其中函数GetInformationByName()是这样子的:
public static DataTable GetInformationByName(string UserName)
{
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
string strQuery = "selcet Pno,TrueName,sex,Department,ClassNo,Email,role1 from Users where UserName=" + UserName ;

try
{
SqlDataAdapter myDA = new SqlDataAdapter(strQuery, myConnection);
DataSet myDS = new DataSet();
myDA.Fill(myDS, "Users");
return myDS.Tables["Users"];
}
catch (Exception ex)
{

return null;
}
}



运行后总出现上述错误,我感觉代码没错呀,就是不知道哪的问题?


[解决办法]

C# code
protected void Page_Load(object sender, EventArgs e)     {                    if (!IsPostBack)           {           string str=Convert.ToString (Session["UserName"]);           DataTable dt = user.GetInformationByName(str);           if(dt!=null)//如果不为空则设置{              this.lblpno.Text = dt.Rows[0][0].ToString();               this.lbltruename.Text = dt.Rows[0][1].ToString();               this.lblsex.Text = dt.Rows[0][2].ToString();               this.lbldepartment.Text = dt.Rows[0][3].ToString();               this.lblclassno.Text = dt.Rows[0][4].ToString();               this.txtemail.Text = dt.Rows[0][5].ToString();               this.lblrole1.Text = dt.Rows[0][6].ToString();           }          }}
[解决办法]
C# code
          if (!IsPostBack)           {               if(Session["UserName"] != null)                  string str=Convert.ToString (Session["UserName"]);               DataTable dt = user.GetInformationByName(str);                         if(dt != null || dt.Rows.Count > 0)              {                  this.lblpno.Text = (dt.Rows[0][0]!=null?dt.Rows[0][0].ToString():"");                   this.lbltruename.Text = dt.Rows[0][1]!=null?dt.Rows[0][1].ToString():"");                this.lblsex.Text = dt.Rows[0][2]!=null?dt.Rows[0][2].ToString():"");           this.lbldepartment.Text = dt.Rows[0][3]!=null?dt.Rows[0][3].ToString():"");                  this.lblclassno.Text = dt.Rows[0][4]!=null?dt.Rows[0][4].ToString():"");                  this.txtemail.Text = dt.Rows[0][5]!=null?dt.Rows[0][5].ToString():"");                  this.lblrole1.Text = dt.Rows[0][6]!=null?dt.Rows[0][6].ToString():"");              }                    }} 


[解决办法]
这个错误经常是由于对象为null造成的
多发现在数据库的操作中
由于数据库中没有取到值,或者操作出错
所以为空,所以就有了这样的错误

读书人网 >C#

热点推荐