我的代码如下所示,此处没有错误,但ddlcountry
和ddlcity
显示为空白,即使数据库在特定行的国家/地区和城市中有值?
Dim query As String = "select * from RES_HOTEL where Hotid=" + Request.QueryString("ID") + " "
Dim cmd As New SqlCommand
cmd.Connection = oConnection
cmd = New SqlCommand(query, oConnection)
Dim oDataAdapter As New SqlDataAdapter(cmd)
Dim dt As New DataTable
oConnection.Open()
oDataAdapter.Fill(dt)
If dt.Rows.Count > 0 Then
txtHotel.Text = dt.Rows(0)("HOTNAME").ToString()
ddlcategory.SelectedValue = dt.Rows(0)("CATEG").ToString()
txtaddress.Text = dt.Rows(0)("ADDRESS").ToString()
ddlcountry.SelectedValue = dt.Rows(0)("COUNTRY").ToString()
ddlcity.SelectedValue = dt.Rows(0)("CITY").ToString()
End If
答案 0 :(得分:1)
您需要将DropdownLists绑定到DataTable
(在这种情况下为Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim query As String = "select * from RES_HOTEL where Hotid=" + Request.QueryString("ID") + " "
Dim cmd As New SqlCommand
cmd.Connection = oConnection
cmd = New SqlCommand(query, oConnection)
Dim oDataAdapter As New SqlDataAdapter(cmd)
Dim dt As New DataTable
oConnection.Open()
oDataAdapter.Fill(dt)
'-- bind your comboboxes to the DataTable.
BindDropdown(ddlcategory, dt, "CATEG", "CATEG")
BindDropdown(ddlcountry, dt, "COUNTRY", "COUNTRY")
BindDropdown(ddlcity, dt, "CITY", "CITY")
If dt.Rows.Count > 0 Then
txtHotel.Text = dt.Rows(0)("HOTNAME").ToString()
ddlcategory.SelectedValue = dt.Rows(0)("CATEG").ToString()
txtaddress.Text = dt.Rows(0)("ADDRESS").ToString()
ddlcountry.SelectedValue = dt.Rows(0)("COUNTRY").ToString()
ddlcity.SelectedValue = dt.Rows(0)("CITY").ToString()
End If
End Sub
Private Sub BindDropdown(ByVal ddl As DropDownList, ByVal ds As Object, ByVal dataTextField As String, ByVal dataValueField As String)
With ddl
.Items.Clear()
.DataSource = ds
.DataTextField = dataTextField
.DataValueField = dataValueField
.DataBind()
End With
End Sub
)。
ASP.NET
编辑:假设您使用的是}
,请更新上述代码。我还将公共代码分成单独的函数以避免重复代码。