首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-01-08 
出现未将对象引用设置到对象的实例错误?我想先把用户信息先绑定,再进行修改,可总出现出现未将对象引用设置

出现未将对象引用设置到对象的实例错误?
我想先把用户信息先绑定,再进行修改,可总出现出现未将对象引用设置到对象的实例错误,大家帮忙看一下这是什么意思
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造成的
多发现在数据库的操作中
由于数据库中没有取到值,或者操作出错
所以为空,所以就有了这样的错误

热点排行