我只是想用DATAGrid 显示表t_aa的纪录,我的代码如下:
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private void Page_Load(object sender, System.EventArgs e)
{
   if (!this.IsPostBack)
   {
       OracleConnection conn = new OracleConnection("data           source=DNAWEB;user=admin;password=admin;");
       OracleDataAdapter da = new OracleDataAdapter("select * from T_AA",conn);
       DataSet ds=new DataSet();
       da.Fill(ds,"T_AA");                                 
       DataGrid1.DataSource=ds.Tables["T_AA"].DefaultView;
       DataGrid1.DataBind();
   }
}系统提示错误如下:“/WebApplication7”应用程序中的服务器错误。
--------------------------------------------------------------------------------未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
行 33:  DataSet ds=new DataSet();
行 34:  da.Fill(ds,"T_AA");                                 
行 35:  DataGrid1.DataSource=ds.Tables["T_AA"].DefaultView;
行 36:  DataGrid1.DataBind();
行 37:  }
 源文件: g:\inetpub\wwwroot\webapplication7\webform1.aspx.cs    行: 35 堆栈跟踪: 
[NullReferenceException: 未将对象引用设置到对象的实例。]
   WebApplication7.WebForm1.Page_Load(Object sender, EventArgs e) in g:\inetpub\wwwroot\webapplication7\webform1.aspx.cs:35
   System.Web.UI.Control.OnLoad(EventArgs e)
   System.Web.UI.Control.LoadRecursive()
   System.Web.UI.Page.ProcessRequestMain()
大家能帮我看看什么原因?   谢谢你们
 

解决方案 »

  1.   

    数据库连接没有打开,加上Open()
      

  2.   

    谢谢你的回答,yanam。我再conn申明之后,加上了conn.Open();后还是报刚才的错!
    老是  DataGrid1.DataSource=ds.Tables["T_AA"].DefaultView; 以红色字体显示。
      

  3.   

    直接用DataGrid1.DataSource=ds.Tables["T_AA"]
    不要DataGrid1.DataSource=ds.Tables["T_AA"].DefaultView试一试看
      

  4.   

    不需要加Open,Fill方法会自动Open并Close。你看看你的DataGrid1是否有赋值?(new DataGrid())
      

  5.   

    我整个程序都是这样的:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.OracleClient;namespace WebApplication7
    {
       public class WebForm1 : System.Web.UI.Page
       {
          protected System.Web.UI.WebControls.DataGrid DataGrid1;
          private void InitializeComponent()
         {
    this.Load += new System.EventHandler(this.Page_Load);
         }
         private void Page_Load(object sender, System.EventArgs e)
         {
    if (!this.IsPostBack)
    {
        OracleConnection conn = new OracleConnection("data source=DNAWEB;user=admin;password=admin;");
        //conn.Open();
       OracleDataAdapter da = new OracleDataAdapter("select * from T_AA",conn);
       DataSet ds=new DataSet();
       da.Fill(ds,"T_AA");          // .DefaultView
       DataGrid1.DataSource=ds.Tables["T_AA"];
       DataGrid1.DataBind();
     }
          }
        }
    }不过去掉.DefaultView,和conn.Open,后没有数据显示      谢谢楼上几位的回答!
    你们说的DataGrid1赋值是怎么回事? 再次谢谢几位的解答!
      

  6.   

    1 首先在监视里查看一下ds.tables[“ta”]有没有数据
    2 if数据已经取出goto3
    3 要在grid里的每一个列设定绑定列,对应table里的所要显示的字段
    你的open怎么注释掉了
      

  7.   

    protected System.Web.UI.WebControls.DataGrid DataGrid1;
          private void InitializeComponent()
         {
              DataGrid1 = new DataGrid();   //这句怎么会没有呢?你不是拖放控件的?
              this.Load += new System.EventHandler(this.Page_Load);
         }