如何在 asp.net 代码中获取引导文本框值并在存储过程中作为参数发送?

Posted

技术标签:

【中文标题】如何在 asp.net 代码中获取引导文本框值并在存储过程中作为参数发送?【英文标题】:how to get bootstrap textbox value in asp.net code behind and send as parameters in store procedure? 【发布时间】:2018-03-04 11:33:09 【问题描述】:

我在 customer.aspx 页面上有以下代码。现在如何使用代码隐藏文件中的文本框和下拉按钮的值作为存储过程的参数发送?文本框和下拉菜单必须仅从 Bootstrap 构建

<div class=" col-xs-12 col-md-6 col-lg-4">
    <div class="form-group">
        <label for="firstname">First Name</label>
        <input class="form-control" id="firstname" type="text" placeholder="Smith">
    </div>
</div>
<div class=" col-xs-12 col-md-6 col-lg-4">
    <div class="form-group">
        <label for="gender">Gender</label>
        <div class="form-group ">
        <select class="form-control col-sm-10">
            <option value="0" selected>Select Gender</option>
             <option value="1">Male </option>
             <option value="2">Female</option>
             <option value="3">Others</option>
         </select>
        </div>
    </div>

代码隐藏文件:

public void Enroll_Customer()
 
    String CS =ConfigurationManager.ConnectionStrings["PortfolioMgmtConnectionString"].ConnectionString;
    using (SqlConnection con = new SqlConnection(CS))



SqlCommand cmd = new SqlCommand("[spAddNewCustomer]", con);
cmd.CommandType = CommandType.StoredProcedure;               

cmd.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = 
Request.Form("firstname");

cmd.Parameters.Add("@gender", SqlDbType.Text).Value = ddlCategory.SelectedValue;
con.Open();
cmd.executeNonQuery();

【问题讨论】:

【参考方案1】:

在 ASP.NET Web 窗体中,如果我们想从回发中检索控件的数据,我们希望尽可能使用服务器控件。

主要原因是控件的状态不容易维护,除非你手动操作ViewState

<div class="row">
    <div class=" col-xs-12 col-md-6 col-lg-4">
        <div class="form-group">
            <asp:Label runat="server" ID="FirstNameLabel" 
                AssociatedControlId="FirstNameTextBox" Text="First Name"/>
            <asp:TextBox runat="server" ID="FirstNameTextBox"
                CssClass="form-control" placeholder="Smith" />
        </div>
    </div>
    <div class=" col-xs-12 col-md-6 col-lg-4">
        <div class="form-group">
            <label for="gender">Gender</label>
            <div class="form-group">
                <asp:DropDownList runat="server" ID="GenderDropDownList" 
                    CssClass="form-control">
                    <asp:ListItem Value="0" Text="Select Gender" Selected="True" />
                    <asp:ListItem Value="1" Text="Male" />
                    <asp:ListItem Value="2" Text="Female" />
                    <asp:ListItem Value="3" Text="Others" />
                </asp:DropDownList>
            </div>
        </div>
    </div>
</div>

代码背后

public void Enroll_Customer()

    string connectionString = ConfigurationManager
        .ConnectionStrings["PortfolioMgmtConnectionString"].ConnectionString;

    using (var conn = new SqlConnection(connectionString))
    using (var cmd = new SqlCommand("spAddNewCustomer", conn))
    
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@FirstName", FirstNameTextBox.Text);
        cmd.Parameters.AddWithValue("@Gender", GenderDropDownList.SelectedValue);
        conn.Open();
        cmd.ExecuteNonQuery();
    

【讨论】:

太好了!谢谢胜利。【参考方案2】:

如果你想使用

Request.Form("firstname"); 

在您的表单中,输入的名字应该有

name="firstname"; 

但现在在您的表单中,它只有 id 属性。 它不属于引导程序。

【讨论】:

以上是关于如何在 asp.net 代码中获取引导文本框值并在存储过程中作为参数发送?的主要内容,如果未能解决你的问题,请参考以下文章

C# Asp.Net 中的类和对象

在按钮单击文本框值是空的使用 asp.net mvc 显示警报?

如何通过单击一个按钮保存 asp.net 文本框值并将该数据用于另一个按钮单击?

ASP.NET MVC 组合框值加载

发生带有 Jquery 对话框的邮箱时,asp.net 文本框值为空

无法更改 ASP.NET MVC 3 中文本框的值