编程论坛's Archiver

ershiyi 发表于 2008-5-11 21:43

求助:未将对象引用设置到对象的实例。

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.Configuration ;
using System.Data .SqlClient ;

namespace hcylb
{
        /// <summary>
        /// ReaderBorrowState 的摘要说明。
        /// </summary>
        public class ReaderBorrowState : System.Web.UI.Page
        {
                protected System.Web.UI.WebControls.DataGrid dgd_booklist;
       
                private void Page_Load(object sender, System.EventArgs e)
                {
                        if(!IsPostBack) BindGrid();
                }
                public void BindGrid()
                {        //从文件Web.config中读取连接字符串
                        string strconn= ConfigurationSettings.AppSettings["dsn"];
                        //连接本地计算机的LMS数据库
                        SqlConnection cn= new SqlConnection (strconn);
                        //创建SqlDataAdapter对象,调用存储过程
                        SqlDataAdapter da=new SqlDataAdapter ("ReaderBorrowState",cn);
                        da.SelectCommand .CommandType =CommandType.StoredProcedure ;
                        //创建并填充DataSet
                        da.SelectCommand.Parameters.Add("@UID",SqlDbType.VarChar);
                        da.SelectCommand.Parameters["@UID"].Value =Session["UID"].ToString();
                        DataSet ds=new DataSet ();
                        da.Fill (ds);
                        dgd_booklist.DataSource =ds;
                        dgd_booklist.DataBind ();
                        cn.Close ();
                }

                #region Web 窗体设计器生成的代码
                override protected void OnInit(EventArgs e)
                {
                        //
                        // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
                        //
                        InitializeComponent();
                        base.OnInit(e);
                }
               
                /// <summary>
                /// 设计器支持所需的方法 - 不要使用代码编辑器修改
                /// 此方法的内容。
                /// </summary>
                private void InitializeComponent()
                {   
                        this.Load += new System.EventHandler(this.Page_Load);

                }
                #endregion
        }
}

[bo][font=黑体][color=Red]在调试时出现将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 35:                         //创建并填充DataSet
行 36:                         da.SelectCommand.Parameters.Add("@UID",SqlDbType.VarChar);
行 37:                         da.SelectCommand.Parameters["@UID"].Value =Session["UID"].ToString();
行 38:                         DataSet ds=new DataSet ();
行 39:                         da.Fill (ds);


源文件: d:\hcylb\readerborrowstate.aspx.cs    行: 37

堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
   hcylb.ReaderBorrowState.BindGrid() in d:\hcylb\readerborrowstate.aspx.cs:37
   hcylb.ReaderBorrowState.Page_Load(Object sender, EventArgs e) in d:\hcylb\readerborrowstate.aspx.cs:25
   System.Web.UI.Control.OnLoad(EventArgs e)
   System.Web.UI.Control.LoadRecursive()
   System.Web.UI.Page.ProcessRequestMain()


请高手们看一下,给个意见[/color][/font][/bo]

hellozlei 发表于 2008-5-11 22:03

有可能是SqlCommand类没有实例化

ershiyi 发表于 2008-5-13 10:16

那应该如何改呢

天使不哭 发表于 2008-5-13 17:46

实例化SqlCommand[tk02]

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.