1

ここでは、コンボ ボックスでデータベースから列を取得しようとしています。
以下のコードは、コンボ ボックスにコンボ ボックスを持た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
4

1 に答える 1

1

DataSet には DataTables が含まれているため、

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 を使用します。

于 2012-10-07T19:21:24.347 に答える