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