如何从 VB.net 组合框中的数据库中获取特定列的所有行?

Posted

技术标签:

【中文标题】如何从 VB.net 组合框中的数据库中获取特定列的所有行?【英文标题】:How to get all rows for particular column from database in combobox in VB.net? 【发布时间】:2012-10-07 14:33:32 【问题描述】:

我在这里尝试从组合框中的数据库中获取列。 下面的代码使组合框在组合框中有System.Data.DataViewManagerListItemTypeDescriptor。 我的代码中缺少什么?

Imports System.Data
Imports System.Data.OleDb

Public Class Sales
    Private Const s As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\HOME\Desktop\Project\company\company\login.mdb"
    Public conn As OleDbConnection
    Public adapt As OleDbDataAdapter
    Public ds As DataSet
    Public tables As DataTableCollection
    Public table As DataTable
    Public rows As DataRowCollection
    Public row As DataRow
    Public cols As DataColumnCollection
    Public col As DataColumn
    Public sql As String
    Public isql, usql, dsql As String
    Public icmd, ucmd, dcmd As OleDbCommand
    Public p As OleDbParameter

    Private Sub Sales_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'LoginDataSet1.Login' table. You can move, or remove it, as needed.
        Me.LoginTableAdapter.Fill(Me.LoginDataSet1.Login)
        Try
            sql = "select cust_ID from Customer"
            conn = New OleDbConnection(s)
            adapt = New OleDbDataAdapter(sql, conn)
            ds = New DataSet
            conn.Open()

            adapt.Fill(ds, "ABC")
            ComboBox1.DataSource = ds
            ComboBox1.DisplayMember = "cust_ID"
            ComboBox1.ValueMember = "cust_ID"


            conn.Close()

        Catch ex As Exception

        End Try
    End Sub
End Class

【问题讨论】:

【参考方案1】:

一个数据集包含数据表,所以你想要

Dim connStr = "Data Source=.\SQLEXPRESS;Initial Catalog=testing;Integrated Security=true;"
Dim sql = "SELECT str FROM testTable"
Dim da = New SqlDataAdapter(sql, connStr)
Dim ds = New DataSet
da.Fill(ds)
ComboBox1.DataSource = ds.Tables(0)
ComboBox1.DisplayMember = "str"
ComboBox1.ValueMember = "str"

但直接使用 DataTable 更简单:

Dim connStr = "Data Source=.\SQLEXPRESS;Initial Catalog=testing;Integrated Security=true;"
Dim sql = "SELECT str FROM testTable"
Dim da = New SqlDataAdapter(sql, connStr)
Dim dt = New DataTable
da.Fill(dt)
ComboBox1.DataSource = dt
ComboBox1.DisplayMember = "str"
ComboBox1.ValueMember = "str"

当然,您将使用我使用的 SqlWhatever 命令的 OleDbWhatever 等效命令。

【讨论】:

谢谢先生的帮助。但我正在尝试从组合框中的数据库中获取所有列的行。你能帮我解决这个问题吗? @Manaswi 如果您的意思是数据库列在组合框中:我将有一个有效数据库名称的列表来填充组合框。当用户选择了数据库名称时,检查该值是否在列表中(出于安全考虑),如果该值有效,则使用该值构造连接字符串。 先生,我试图在组合框中填充一列。很简单,我的问题解决了。非常感谢您的帮助。

以上是关于如何从 VB.net 组合框中的数据库中获取特定列的所有行?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Access 数据库 VB.net 中检索特定数据?

VB.NET 仅从一个字段访问填充组合框

如何使用vb.net 2019从访问数据库中关系的另一个列表中查看特定列的所有数据主表

如何从访问数据库列中获取每个唯一值并添加到组合框项目

根据数据绑定组合框中的选定项目从访问数据库中删除

获取组合框 SelectedIndex 数据并在 SELECT Query 中使用 - VB.net