无法在代码后面获取表单值以执行插入到数据库中

时间:2014-12-09 11:10:32

标签: c# asp.net sql-server database

我有一个aspx数据输入页面,它接受某些字段的用户输入并插入到数据库中。

有两个部分(在问题的其余部分称为S1和S2)

S1有3个文本输入控件和2个单选按钮。同样,S2也有3个文本输入控件和2个单选按钮。

有什么期望?

单击提交后,后面的代码必须将S1字段的值插入S1表,同样,S2字段的值成功转换为S2。

出了什么问题?

在DB中仅填充S1表值,S2表为空。没有记录在S2中输入。

在调试器的帮助下,我发现在S1的单选按钮之后用户输入的所有输入字段值都没有被接受。他们是空白的。

SQL查询都是正确的。我甚至尝试在aspx页面上用S2交换S1部分。当我这样做时,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>

第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();

请告诉我如何解决这个问题。如果您需要任何代码,请告诉我。

1 个答案:

答案 0 :(得分:1)

你能添加完整的aspx代码吗?这两个部分是否属于相同的FORM标签?