0

下面的代码有什么问题。我不知道如何将 sqldatabase 表格内容添加到下拉列表中请帮助

Protected Sub DropDownList3_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList3.SelectedIndexChanged

    Dim sqlcon As New SqlConnection("Data Source=SOf-22\SQLEXPRESS;Initial Catalog=Sales_oct_3;Persist Security Info=True;User ID=s;Password=121")


    If sqlcon.State = ConnectionState.Open Then
        sqlcon.Close()
    End If
    sqlcon.Open()
    Dim strcommand As String

    strcommand = "select item from tgnitem"
    Dim sqlcomm As New SqlCommand(strcommand, sqlcon)
    Dim o As String = sqlcomm.ExecuteNonQuery()

End Sub
End Class
4

2 回答 2

0

你在这里做了很多错误的事情。对于如此简单的事情,您最好坚持使用强类型数据集。他们会减轻你的很多负担。您无需维护连接、手动执行查询、遍历结果并将它们填充到您的 UI 控件等。了解有关类型化 DataSet 和简单绑定场景(例如您的)的更多信息,它们将为您带来长期利益。

使用类型化 DataSet 时,此类内容的简单 4 步机制是:

  1. 将新的数据集添加到您的项目中。
  2. 通过右键单击 DataSet 设计器图面来添加新的 TableAdapter。编写您的查询,它将为您创建一个类型 DataTable。您甚至可以使用服务器资源管理器拖动表格。
  3. 将您的 DataSet 类型的实例添加到您的表单中。
  4. DataSourceComboBox 的属性设置为此实例,将 DataMember 设置为 DataTable 的名称。设置DataTable 的显示DisplayMemberValueMember值字段,例如 DisplayMember = "Name" 和 ValueMember = "ItemID"。
于 2013-10-04T06:00:55.307 回答
0

看到这可能对你有帮助

Public Shared Function ClientList() As DataTable
    Dim dtResult As DataTable = Nothing
    Try
        Dim objDataLayer As New ClsDataLayer()
        objDataLayer.AddParameter("@REF_USER_ID", ClsCommons.IntUserId)
        dtResult = objDataLayer.ExecuteDataTable("TR_PROC_GetClientList")
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
    Return dtResult
End Function

Public Shared Sub ClientList(ByVal cmbClientList As ComboBox)
    cmbClientList.DropDownStyle = ComboBoxStyle.DropDownList
    Try
        Dim dtClientList As DataTable = ClsClientManager.ClientList()
        If ((Not IsNothing(dtClientList)) AndAlso dtClientList.Rows.Count > 0) Then
            Dim drClient As DataRow = dtClientList.NewRow()
            drClient(0) = -1
            drClient(1) = "< -- Select Department -- >"
            dtClientList.Rows.InsertAt(drClient, 0)
            cmbClientList.DataSource = dtClientList
            cmbClientList.DisplayMember = "CLIENT_NAME"
            cmbClientList.ValueMember = "CLIENT_ID"
        Else
            MessageBox.Show("There is no Department to load", "Talent Recruit", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub
于 2013-10-04T06:06:02.957 回答