老是那个问题——“未将对象引用设置到对象的实例”

成都清香白莲 2004-02-12 08:53:50
private void ddlistNumber_SelectedIndexChanged(object sender,System.EventArgs e)
{
int i;

Table t=new Table();
Page.Controls[1].Controls.Add(t);
t.Attributes.Add("style", "width:100%");

for(i=1;i<=Convert.ToInt32(ddlistNumber.SelectedItem.Text);i++)
{
TextBox txtOrder=new TextBox();
txtOrder.ID="txtOrder"+Convert.ToString(i);
txtOrder.Width=Unit.Pixel(64);
Controls.Add(txtOrder);

TextBox txtContent=new TextBox();
txtContent.ID="txtContent"+Convert.ToString(i);
txtContent.Width=Unit.Pixel(280);
Controls.Add(txtContent);

DropDownList ddlFlag=new DropDownList();
ddlFlag.ID="ddlFlag"+Convert.ToString(i);
ddlFlag.Items.Add(new ListItem("0"));
ddlFlag.Items.Add(new ListItem("1"));
Controls.Add(ddlFlag);

TableRow r=new TableRow();
t.Rows.Add(r);

TableCell c1=new TableCell();
c1.Controls.Add(txtOrder);
r.Cells.Add(c1);

TableCell c2=new TableCell();
c2.Controls.Add(txtContent);
r.Cells.Add(c2);

TableCell c3=new TableCell();
c3.Controls.Add(ddlFlag);
r.Cells.Add(c3);
}



}

private void btnOK_Click(object sender, System.EventArgs e)
{
SqlConnection sqlcnn=(SqlConnection)Session["MainConnection"];


SqlCommand cmd2=new SqlCommand("Insert Into tblExamination (QuestionID, QuestionContent) Values (@QuestionID, @QuestionContent)", sqlcnn);
cmd2.Parameters.Add("@QuestionID", txtQuestionID.Text);
cmd2.Parameters.Add("@QuestionContent", txtQuestionContent.Text);
cmd2.ExecuteNonQuery();

for(j=1; j<=Convert.ToInt32(ddlistNumber.SelectedItem.Text); j++)
{


SqlCommand cmd3=new SqlCommand("Insert Into tblAnswer (QuestionID, AnswerOrder, AnswerContent, CorrectFlag) Values (@QuestionID, @AnswerOrder, @AnswerContent, @CorrectFlag)", sqlcnn);
cmd3.Parameters.Add("@QuestionID", txtQuestionID.Text);
****** cmd3.Parameters.Add("@AnswerContent", ((TextBox)Page.FindControl("txtContent"+Convert.ToString(j))).Text);
cmd3.Parameters.Add("@CorrectFlag", ((DropDownList)Page.FindControl("ddlFlag"+Convert.ToString(j))).SelectedItem.Text);
cmd3.Parameters.Add("@AnswerOrder", Convert.ToInt64(((TextBox)Page.FindControl("txtOrder"+Convert.ToString(j))).Text));

cmd3.ExecuteNonQuery();
}

}

主要目的是想通过dropdownlist里面的数据动态的创建几个textbox,放在表格里(为了换行的目的),把textbox里的内容提交到数据库时出错,在*****处
错误是:


“/Oil”应用程序中的服务器错误。
--------------------------------------------------------------------------------

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

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

源错误:


行 130: SqlCommand cmd3=new SqlCommand("Insert Into tblAnswer (QuestionID, AnswerOrder, AnswerContent, CorrectFlag) Values (@QuestionID, @AnswerOrder, @AnswerContent, @CorrectFlag)", sqlcnn);
行 131: cmd3.Parameters.Add("@QuestionID", txtQuestionID.Text);
行 132: cmd3.Parameters.Add("@AnswerContent", ((TextBox)Page.FindControl("txtContent"+Convert.ToString(j))).Text);
行 133: cmd3.Parameters.Add("@CorrectFlag", ((DropDownList)Page.FindControl("ddlFlag"+Convert.ToString(j))).SelectedItem.Text);
行 134: cmd3.Parameters.Add("@AnswerOrder", Convert.ToInt64(((TextBox)Page.FindControl("txtOrder"+Convert.ToString(j))).Text));


源文件: c:\documents and settings\administrator\my documents\oil\oil\add.aspx.cs 行: 132

堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
Oil.Add.btnOK_Click(Object sender, EventArgs e) in c:\documents and settings\administrator\my documents\oil\oil\add.aspx.cs:132
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()




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


望高手指点,谢谢
...全文
74 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧