【发布时间】:2014-12-09 11:10:31
【问题描述】:
我有一个 aspx 数据输入页面,它接受用户对某些字段的输入并插入到数据库中。
大约有 2 个部分(在问题的其余部分中称为 S1 和 S2)
S1 有 3 个文本输入控件和 2 个单选按钮。同样,S2 也有 3 个文本输入控件和 2 个单选按钮。
预期会怎样?
点击提交后,后面的代码必须将 S1 字段的值插入到 S1 表中,同样,将 S2 字段的值插入到 S2 中,成功。
出了什么问题?
数据库中仅填充 S1 表值,而 S2 表为空。在 S2 中没有输入任何记录。
在调试器的帮助下,我发现用户在 S1 的单选按钮之后输入的所有输入字段值根本不被接受。它们是空白的。
SQL 查询都是正确的。我什至尝试在 aspx 页面上将 S1 部分与 S2 交换。当我这样做时,S2 值被输入到 DB 而不是 S1。同样,在 S2 的单选按钮之后出现的 S1 的输入字段值没有被读取。
有人告诉我这是某种回发问题。
第 1 节 (S1) 的 ASPX 代码 [S2 代码类似]
<asp:TextBox ID="txtTitle" runat="server" CssClass="form-control lw-sharp-corners" placeholder="Enter Release Title"></asp:TextBox>
<asp:TextBox ID="txtReleaseDescription" runat="server" CssClass="form-control lw-sharp-corners" placeholder="Enter Release Description"></asp:TextBox>
<asp:TextBox ID="txtReleaseUrl" runat="server" CssClass="form-control lw-sharp-corners" placeholder="Enter Release Url"></asp:TextBox>
<div class="form-group" id="ActivateRelease">
<label for="rdoActivateRelease" id="lblActivateRelease">Activate Release?</label>
<div class="radio">
<label for="rdoActivateReleaseYes" id="lblActivateReleaseYes">
<asp:RadioButton ID="rdoActivateReleaseYes" GroupName="rdoActivateRelease" runat="server" ClientIDMode="Static" />
Yes
</label>
<label for="rdoActivateReleaseNo" id="lblActivateReleaseNo">
<asp:RadioButton ID="rdoActivateReleaseNo" GroupName="rdoActivateRelease" runat="server" ClientIDMode="Static" />
No
</label>
</div>
Section-1 (S1)的CS页面代码[S2代码类似]
protected void btnMap_Click(object sender, EventArgs e)
{
string ReleaseTitle = "";
SqlCommand cmd1 = new SqlCommand("sp_InsertRelease", con);
cmd1.CommandType = CommandType.StoredProcedure;
cmd1.Parameters.Add("@Title", SqlDbType.NVarChar).Value = txtTitle.Text;
cmd1.Parameters.Add("@ReleaseDescription", SqlDbType.NVarChar).Value = txtReleaseDescription.Text;
cmd1.Parameters.Add("@ReleaseUrl", SqlDbType.NVarChar).Value = txtReleaseUrl.Text;
cmd1.Parameters.Add("@DeviceType", SqlDbType.Int).Value = 2;
int ActivateState1;
if (rdoActivateReleaseYes.Checked)
{
ActivateState1 = 1;
}
else
{
ActivateState1 = 0;
}
cmd1.Parameters.Add("@IsActive", SqlDbType.Bit).Value = ActivateState1;
con.Open();
SqlDataReader drRelease = cmd1.ExecuteReader();
while (drRelease.Read())
{
ReleaseTitle = drRelease.GetValue(0).ToString();
}
con.Close();
请告诉我如何解决这个问题。如果您需要任何代码,请告诉我。
【问题讨论】:
-
你能告诉我们你的aspx和cs代码吗?
-
@TusharGupta 我添加了正确的代码。如果您需要更多详细信息,请告诉我
-
你能添加完整的aspx代码吗?这两个部分是否属于同一个 FORM 标签?
-
您的表格在哪里。?您是否使用任何 MasterPage?是一个按钮还是多个?
-
至少放两个部分。尽管它们与您所说的相似,但值得一看。什么是 btnMap_Click,它在哪里被调用?
标签: c# asp.net sql-server database