【发布时间】:2015-10-12 13:45:58
【问题描述】:
我编写了代码以根据特定文本框中的用户输入将动态文本框添加到 aspx 页面,但是当我打算保存它们的值(动态文本框)时,我遇到了以下异常(因为代码中的文本框对象后面留空):
对象引用未设置为对象的实例。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。
来源错误:
第 99 行:{ 第 100 行:con.Open(); 第 101 行:cmd.Parameters.AddWithValue("@name", txtName.Text);第 102 行:
cmd.Parameters.AddWithValue("@mail", Convert.ToInt32(txtCost.Text)); 第 103 行:cmd.ExecuteNonQuery(); 这是我的标记代码:
asp:Content ID="Content2" ContentPlaceHolderID="TitleContentPlaceHolder" runat="server">
<img class="pull-right" src="/resources/cicons/event-title.png" style="padding:10px;">
<span class="pull-right" style="color:gray;font-weight:bold;font-size:15px;padding:10px">تعریف کلاس</span>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
<div style="margin-left: 13px; margin-top: 0px;direction: rtl;margin-bottom:50px" class="widget stacked widget-table action-table">
<div class="span12 column">
<asp:HiddenField runat="server" ID="AccordionHiddenField" Value=".search"/>
<div class="well span10" style="margin-top:5px;direction:rtl">
<div class="row-fluid user-infos search" style="display: none;">
<div class="span10 offset1">
<div class="panel-primary">
<div class="panel-body">
<div class="row-fluid">
<div class="span12">
<div class="span6">
<div class="form-group" style="width:400px">
<asp:TextBox ID="txtProviderId" runat="server" Visible="False" Width="150px"></asp:TextBox>
</div>
</div>
<div class="span12">
<div class="form-group" style="width:400px">
<label class="span3" for="lblCount" style="float:right">تعداد کلاس</label>
<asp:TextBox ID="txtCount" runat="server"></asp:TextBox>
</div>
</div>
<div class="span6" style="margin-right: 310px;margin-left: -35px;">
<button runat="server" onserverclick ="cmdOk_ServerClick"
id="cmdOk" causesvalidation="false"
style="float: right; margin-left: 10px;"
class="btn btn-success">
افزودن کلاس
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div style="margin-left: 13px; margin-top: 0px;direction: rtl;margin-bottom:50px" class="widget stacked widget-table action-table">
<div class="span12 column">
<div class="well span10" style="margin-top:5px;direction:rtl">
<div class="row-fluid user-infos search" style="display: none;">
<div class="span10 offset1">
<div class="panel-primary">
<div class="panel-body">
<div class="row-fluid">
<div class="span12">
<div class="span6">
<div class="form-group" style="width:400px">
<asp:PlaceHolder ID="mainplaceholder" runat="server">
<div class="span6" style="margin-right: 310px;margin-left: -35px;">
<button runat="server" onserverclick ="cmdSubmit_ServerClick"
id="cmdSubmit" causesvalidation="false"
style="float: right; margin-left: 10px;"
class="btn btn-success">
ثبت
</button>
</div>
</asp:PlaceHolder>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</asp:Content>
下面是代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Hasin.Common.Utilities;
using HasinReservation.Classes;
using HasinReservation.Entities;
using HasinReservation.Entities.Db;
using HasinReservation.Utility.BasePage;
using System.Data.Entity.Infrastructure;
using System.Data.SqlClient;
using System.Web.Script.Serialization;
using System.Configuration;
using System.Data;
namespace HasinReservation.UI.ServiceProvider
{
public partial class _Levels : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
txtProviderId.Text = ((CurrentUser)Session["currentuser"]).ProviderId.ToString();
if (!Page.IsPostBack)
{
// BindCombos();
DataBind();
}
}
private void BindCombos()
{
}
protected void cmdOk_ServerClick(object sender, EventArgs e)
{
for (int j = 1; j <= Convert.ToInt32(txtCount.Text); j++)
{
Label lbl1 = new Label();
lbl1.Text = "کلاس شماره" + j;
lbl1.ID = "lblName";
mainplaceholder.Controls.Add(lbl1);
mainplaceholder.Controls.Add(new LiteralControl(" "));
mainplaceholder.Controls.Add(new LiteralControl(" "));
mainplaceholder.Controls.Add(new LiteralControl(" "));
mainplaceholder.Controls.Add(new LiteralControl(" "));
mainplaceholder.Controls.Add(new LiteralControl(" "));
mainplaceholder.Controls.Add(new LiteralControl(" "));
mainplaceholder.Controls.Add(new LiteralControl(" "));
mainplaceholder.Controls.Add(new LiteralControl(" "));
mainplaceholder.Controls.Add(new LiteralControl(" "));
mainplaceholder.Controls.Add(new LiteralControl(" "));
mainplaceholder.Controls.Add(new LiteralControl(" "));
TextBox txt = new TextBox();
txt.ID = "txtName" + j.ToString();
mainplaceholder.Controls.Add(txt);
mainplaceholder.Controls.Add(new LiteralControl("<br />"));
Label lbl2 = new Label();
lbl2.Text = "قیمت کلاس شماره" + j;
lbl2.ID = "lblCost";
mainplaceholder.Controls.Add(lbl2);
mainplaceholder.Controls.Add(new LiteralControl(" "));
TextBox tb = new TextBox();
tb.ID = "txtCost" + j.ToString();
mainplaceholder.Controls.Add(tb);
mainplaceholder.Controls.Add(new LiteralControl("<br />"));
cmdSubmit.Visible = true;
}
}
protected void cmdSubmit_ServerClick(object sender, EventArgs e)
{
int j = Convert.ToInt32(txtCount.Text);
for (int i = 1; i<j;i++){
String str = string.Empty;
TextBox txtName = (TextBox)mainplaceholder.FindControl("txtName" + i.ToString());
TextBox txtCost = (TextBox)mainplaceholder.FindControl("txtCost" + i.ToString());
using (SqlConnection con = new SqlConnection(@"Data Source=192.168.10.4\Sql2008;Initial Catalog=GardeshgariKish;User ID=cms;Password=cms#123456;MultipleActiveResultSets=True;Application Name=EntityFramework"))
{
using (SqlCommand cmd = new SqlCommand("INSERT INTO Seat(Name,cost) VALUES(@name,@mail)", con))
{
con.Open();
cmd.Parameters.AddWithValue("@name", txtName.Text);
cmd.Parameters.AddWithValue("@mail", Convert.ToInt32(txtCost.Text));
cmd.ExecuteNonQuery();
txtCost.Text = string.Empty;
txtName.Text = string.Empty;
ClientScript.RegisterClientScriptBlock(this.GetType(), "btn", "<script type = 'text/javascript'>alert('UserDetails saved Successfully');</script>");
}
}
}
}
}
}
【问题讨论】:
标签: c# asp.net sql-server