【问题标题】:Setup a <select> dropdown list dynamically from a SQL Server database table从 SQL Server 数据库表动态设置 <select> 下拉列表
【发布时间】:2013-07-03 22:32:58
【问题描述】:

我正在尝试设置一个下拉列表以从 SQL Server 数据库中的表中提取。我正在使用带有代码的 aspx 将数据提交到 SQL Server 数据库。最终,我需要在下拉列表中显示客户姓名,然后将该数据提交到另一个数据库表。使用&lt;asp:DropDownList&gt; 是一个选项,但我通过名称属性提交数据,我无法为asp webform 对象设置特定名称。到目前为止,我还没有在我的表单中使用过 php,如果可能的话,我想保持清楚。

aspx html代码:

<select id="customerName" name="custName" class="txtbxList">
 <option></option>
 <option></option>
 <option></option>
</select>

asp DropDownSOURce 和列表标签

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString='<%$ ConnectionStrings:csusaCentralConnection %>' SelectCommand="SELECT [customerNameDD] FROM [customerNameList]"></asp:SqlDataSource>
<asp:DropDownList ID="customerName" CssClass="txtbxList" runat="server" DataSourceID="SqlDataSource1" DataTextField="customerNameDD" DataValueField="customerNameDD"></asp:DropDownList>

我的代码隐藏:

string coName = Request.Form["custName"];
string generalInfo = @"INSERT INTO generalInfo(CustomerName)VALUES(@custName);

        SELECT SCOPE_IDENTITY();
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["csusaCentralConnection"].ConnectionString);

        SqlCommand cmd = new SqlCommand(generalInfo, conn);

        //NAME of input field in aspx file

        cmd.Parameters.AddWithValue("custName", coName);

        conn.Open();
        string rowIdentity = cmd.ExecuteScalar().ToString();
        conn.Close();

【问题讨论】:

  • 我不明白 "使用 DropDownList 是一个选项,但我通过 name 属性提交数据,我无法为 asp webform 对象设置特定名称"
  • 这其中的哪一部分你不明白?我是 C# 的新手并提交到 sql,但据我了解,您只能使用 name 属性将数据提交到 sql 数据库?
  • 你的理解有误。下拉列表显示名称,但提交id更正常。
  • 这也适用于基本的html 标签吗?每当我遇到困难时,我有一个伙伴向我展示了绳索,他说提交到 sql 数据库表,您应该使用 name 属性而不是 ID 属性。顺便说一句,丹,谢谢信息。
  • 这与您昨天在stackoverflow.com/questions/17437295/… 中提出的问题相同吗? cmets中链接的文章应该可以解决您的问题。

标签: c# asp.net sql sql-server html-select


【解决方案1】:

您似乎正在使用设计器来设置下拉列表数据源。以下是您可以在代码中执行此操作的方法:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            MyLinqToSqlDataContext db = new MyLinqToSqlDataContext();
            var result = from c in db.Customers
                         select g;
            customerName.DataSource = result.ToList();
            customerName.DataTextField = "Name";
            customerName.DataValueField = "ID";
            customerName.DataBind();
            ...
        }
   }

【讨论】:

    【解决方案2】:

    从外观上看,您已经完成了大部分工作,您应该只需要更改这一行:

    string coName = Request.Form["custName"];
    

    收件人:

    string coName = customerName.SelectedValue;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-03
      • 1970-01-01
      • 2016-02-22
      相关资源
      最近更新 更多