....
                   protected DataTable mytb; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
mytb=this.BuildPicTable();
}
}
                   public DataTable BuildPicTable()
{
DataTable mytb=new DataTable("UPDT");
DataColumn mydc;
mydc=new DataColumn();
mydc.ColumnName="imgid";
mydc.AutoIncrement=true;
mydc.AutoIncrementSeed=1;
mydc.AutoIncrementStep=1;
mydc.DataType=System.Type.GetType("System.Int32");
mytb.Columns.Add(mydc);
mydc=new DataColumn();
mydc.ColumnName="imgfilename";
mydc.DataType=System.Type.GetType("System.String");
mytb.Columns.Add(mydc);
return mytb;
}一个按钮点击 
private void buupimg_Click(object sender, System.EventArgs e)
{
                   Response.Write(mytb.Rows.Count.ToString());
                   }
随便新建一个aspx 把这个ascx插入执行出错:未将对象引用设置到对象的实例。
出错行:Response.Write(mytb.Rows.Count.ToString());
郁闷。。求解 ,在线 2小时等待散分 。。

解决方案 »

  1.   

    看看是不是要NEW一下啊   public DataTable BuildPicTable()
    {
    DataTable mytb=new DataTable("UPDT");这边NEW的。。那这边怎么没有??
    private void buupimg_Click(object sender, System.EventArgs e)
    {
                       Response.Write(mytb.Rows.Count.ToString());
                       }
      

  2.   

    because the instance variable is null upon postback, save it in a session variable,for example
    private void Page_Load(object sender, System.EventArgs e)
    {
    mytb = (DataTable)Session["MyData"];
    if (mytb == null)
    {
      mytb=this.BuildPicTable();
      Session["MyData"] = mytb;
    }
    }