【问题标题】:VB.NET DataSet FunctionVB.NET 数据集函数
【发布时间】:2013-04-22 10:30:12
【问题描述】:

我正在尝试看看是否有更好的方法来使用返回 DataSet 的函数来填充组合框,或者更简洁的代码、更快的方法等。

功能:

    Public Function FillDataSet(ByVal dataSet As DataSet, ByVal queryString As String) As DataSet
      Using connection As New SqlConnection("Data Source=SQL;Initial Catalog=database; User ID=user;Password=password;")
         Using adapter As New SqlDataAdapter() With {.SelectCommand = New SqlCommand(queryString, connection)}
            adapter.Fill(DataSet)
         End Using
         Return DataSet
      End Using
    End Function

调用子:

    Private Sub fillComboBox()
      comboBox.Items.Clear()
      Dim myDataSet As New DataSet
      myDataSet = FillDataSet(myDataSet , "SELECT rows FROM table")
      If myDataSet .Tables(0).Rows.Count > 0 Then
        For Each row As DataRow In myDataSet .Tables(0).Rows
          comboBox.Items.Add(row(0))
        Next row
        comboBox.SelectedIndex = 0
      Else
        MsgBox("Empty table.", MsgBoxStyle.OkOnly, "Empty Table...")
      End If
      myDataSet .Dispose()
    End Sub

【问题讨论】:

    标签: vb.net dataset


    【解决方案1】:

    将 for each 循环替换为 comboBox.DataSource = myDataSet.Tables(0),然后使用其列名 comboBox.DisplayMember = "ColumnName" 和值成员分配要显示的列以捕获其 SelectedValue

    comboBox.DataSource = myDataSet.Tables(0)
    comboBox.DisplayMember = "ColumnName"
    comboBox.ValueMember = "ColumnName"
    

    【讨论】:

    • 感谢您的建议。
    猜你喜欢
    • 2013-11-06
    • 2015-11-07
    • 1970-01-01
    • 2010-12-04
    • 2011-08-24
    • 1970-01-01
    • 2011-01-10
    • 2011-12-07
    相关资源
    最近更新 更多