asp.net - 使用 SQL 填充下拉列表

标签 asp.net vb.net t-sql drop-down-menu ado.net

我的 asp.net 网站中有一个 DropDownList,但我无法用我的 sql 服务器中的数据填充它。

我错过了什么吗?

Dim sqlconn As New SqlConnection  
Dim sqCmd As New SqlCommand       
Dim sqlreader As SqlDataReader    

sqlconn.ConnectionString = "server = .......;Database=......;User ID=....
Password=...." 

sqCmd.Connection = sqlconn
sqlconn.Open()
sqCmd.CommandText = "SELECT DISTINCT CompanyDivision FROM Reports"
sqlreader = sqCmd.ExecuteReader()

DropDownList.DataSource = sqlreader
DropDownList.DataTextField = "CompanyDivision"
DropDownList.DataValueField = "CompanyDivision"
DropDownList.DataBind()

sqlreader.Close()
sqlconn.Close()

最佳答案

将 sql 查询附加到下拉列表的最直接方法是使用 SqlDataSource在 aspx 中。

你可以这样做:

<asp:SqlDataSource runat="server" 
                   ID="CompanyDivisionSource"
                   DataSourceMode="DataReader"
                   ConnectionString="<%$ ConnectionStrings:YourConnectionStringKey%>"
                   SelectCommand="SELECT DISTINCT CompanyDivision FROM Reports" />
<asp:DropDownList runat="server" 
                  DataSourceID="CompanyDivisionSource" 
                  DataTextField="CompanyDivision"
                  DataValueField="CompanyDivision" />

我也建议在连接字符串中使用该表达式。您需要将连接字符串放在 web.config 文件中的 <connectionStrings> 下标签。您将能够在多个页面上重复使用相同的连接,而不必在每次使用时都对其进行硬编码。

有关 SqlDataSource 的更多信息可以在 this overview 上找到.

关于asp.net - 使用 SQL 填充下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26513434/

相关文章:

vb.net - 如何在 VB.net 中以编程方式填充 DataGridViewComboBoxColumn?

c# - Matrix3D 入门 (Silverlight)

用于检测特定 deviceId 缺失事件事件的 Azure 流分析查询

sql - 小表查询超时

c# - 如何设置asp.net身份默认登录页面

c# - 将一年和几个月添加到下拉列表中

c# - 如果对象是通用列表

SQL逻辑提取信息

javascript - 如何在用户控件中的aspx页面上调用外部javascript方法

c# - 在代码隐藏中访问无序列表控件 ID