0

アクセス データベースに THROUGH CODE で接続しようとしています。私はそれを行う視覚的な方法をよく知っていますが、このインスタンスではその方法を使用できないため、最後のビットを大文字にしました。基本的には、Year 列を表示するテーブル Title から単一の列にあるコンボボックスへのデータバインディングを作成したいだけです。これを明確にするために、cboYearsFillBy に YearPublished 列のデータを入力します。私が最大の苦痛であると感じているのは、dbが見つからないときにvbが大騒ぎしないため、それが見つかっているかどうかさえわからないことです。私のコードは以下です

  Imports System.Data.OleDb

    Public Class frmTitle
    ' Create untyped dataTables
    Dim dtYears As New DataTable

    ' Declare a variable to represent the DataAdapter
    Dim daYears As OleDbDataAdapter
    ' Create BindingSource objects for Employee & Dept tables:
    Dim WithEvents bsYears As New BindingSource

    Private Sub frmTitle_Load(sender As Object, e As EventArgs) Handles Me.Load

        Dim connStr As String = "Provider=Microsoft.ace.OLEDB.12.0;Data Source=D:\VisualStudioProjects\Biblio.accdb"
        MessageBox.Show(connStr)
        Dim titleSQLStr As String = "SELECT * FROM Title"
        daYears = New OleDbDataAdapter(titleSQLStr, connStr)
        Dim commandBuilder As New OleDb.OleDbCommandBuilder(daYears)
        daYears.Fill(dtYears)
        dtYears.PrimaryKey = New DataColumn() {dtYears.Columns("YearPublished")}
        bsYears.DataSource = dtYears
        cboYearsFillBy.DataSource = bsYears
        cboYearsFillBy.DisplayMember = "YearPublished"
        cboYearsFillBy.ValueMember = "YearPublished"

    End Sub
    End Class

次の出力が得られます 出力

4

1 に答える 1

0
Imports System.Data.OleDb

Public Class frmTitle
' Create untyped dataTables
Dim dtYears As New DataTable

' Declare a variable to represent the DataAdapter
Dim daYears As OleDbDataAdapter
' Create BindingSource objects for Employee & Dept tables:
Dim WithEvents bsYears As New BindingSource

Private Sub frmTitle_Load(sender As Object, e As EventArgs) Handles Me.Load

    Dim connStr As String = "Provider=Microsoft.ace.OLEDB.12.0;Data Source=D:\VisualStudioProjects\Biblio.accdb; Persist Security Info=True"
    MessageBox.Show(connStr)
    Dim con As New OleDbConnection
    con = New OleDbConnection(connStr)
    If con.State = ConnectionState.Closed Then
    con.Open()
    End If
    Dim titleSQLStr As String = "SELECT * FROM Title"
    daYears = New OleDbDataAdapter(titleSQLStr, connStr)
    daYears.Fill(dtYears)
    cboYearsFillBy.DataSource = dtYears
    cboYearsFillBy.DisplayMember = "YearPublished"
    cboYearsFillBy.ValueMember = "YearPublished"
    con.Close()  
End Sub

End Class

コードを簡素化しました 今すぐ試してください

于 2013-11-12T03:12:56.140 に答える