回 帖 发 新 帖 刷新版面

主题:各位仁兄帮个忙看一下我的程序到底那里错了!运行时老是提示:“未将对象引用设置到对象的实例。”

各位仁兄帮个忙看一下我的程序到底那里错了!
这是一段C#写的代码。
运行时老是提示:“未将对象引用设置到对象的实例。”可是该有的NEW我都有了!(其中sdr 是一个指向前的游标。)
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.SqlClient;
namespace vote
{
    /// <summary>
    /// vote 投票。
    /// </summary>
    public class vote : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.Label lblTitle;
        protected System.Web.UI.WebControls.Button btnVote ;
                protected System.Web.UI.WebControls.Button btnShowResult;
                protected System.Web.UI.WebControls.RadioButtonList rBtnItems;
            private string voteID="1";
        private void Page_Load(object sender, System.EventArgs e)
        {
            if(!this.IsPostBack)
            {
                //创建连接
                SqlConnection con=DB.createConnection();
                con.Open();
                //查询选举的标题
                SqlCommand cmd=new SqlCommand ("select voteTitle from voteMaster where voteID="+this.voteID ,con);
                string title=Convert.ToString (cmd.ExecuteScalar());
                this.lblTitle .Text=title;
                //查询对应的投票条目
      SqlCommand cmdItem=new SqlCommand ("select voteDetailsID,voteItem from voteDetails where voteID="+this.voteID,con);
                SqlDataReader sdr=cmdItem.ExecuteReader();
                this.rBtnItems.DataSource=sdr;
                this.rBtnItems.DataTextField="voteItem";
                this.rBtnItems.DataTextField="voteDetailsID";
                this.rBtnItems.DataBind();
                sdr.Close();
                //关闭连接
                con.Close ();
            }
        }

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

        }
        #endregion

        private void btnShowResult_Click(object sender, System.EventArgs e)
        {
            Response.Redirect ("showResult.aspx?voteid="+this.voteID );
        }
    }
}
“/vote”应用程序中的服务器错误。
--------------------------------------------------------------------------------

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

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

源错误: 


行 37:       SqlCommand cmdItem=new SqlCommand ("select voteDetailsID,voteItem from voteDetails where voteID="+this.voteID,con);
行 38:                 SqlDataReader sdr=cmdItem.ExecuteReader();
行 39:                 this.rBtnItems.DataSource=sdr;
行 40:                 this.rBtnItems.DataTextField="voteItem";
行 41:                 this.rBtnItems.DataTextField="voteDetailsID";
 

源文件: c:\inetpub\wwwroot\vote\vote.aspx.cs    行: 39 

堆栈跟踪: 


[NullReferenceException: 未将对象引用设置到对象的实例。]
   vote.vote.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\vote\vote.aspx.cs:39
   System.Web.UI.Control.OnLoad(EventArgs e)
   System.Web.UI.Control.LoadRecursive()
   System.Web.UI.Page.ProcessRequestMain()

 


--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300

回复列表 (共1个回复)

沙发

传一个DataSet给它,别用DataReader了

我来回复

您尚未登录,请登录后再回复。点此登录或注册