簡體   English   中英

將數據從數據庫顯示到DataGridView中

[英]Display data from database into DataGridView

我的Access數據庫中有兩個表,用於存儲Item InItem Out 我正在使用DataSet在DataGridView中顯示兩個表中的數據。 在DataGridView1中顯示的Item In和在DataGridView2中顯示的Item Out。

這是我的模塊功能

顯示項目的功能

Public Sub load_item_in()
    ds_i.Reset()
    Dim i_sql As String
    Dim conn_i As New OleDb.OleDbConnection("PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source = access-database-file-dir")
    i_sql = "SELECT * FROM item_in"
    da_i = New OleDb.OleDbDataAdapter(i_sql, conn_i)
    da_i.Fill(ds_i, "InventoryIn")
    Form6.DataGridView1.DataSource = ds_i.Tables("InventoryIn")
    Form6.DataGridView1.ReadOnly = True
End Sub

顯示項目輸出的功能

Public Sub load_item_out()
    ds_i.Reset()
    Dim i_sql As String
    Dim conn_i As New OleDb.OleDbConnection("PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source = access-database-file-dir")
    i_sql = "SELECT * FROM item_out"
    da_i = New OleDb.OleDbDataAdapter(i_sql, conn_i)
    da_i.Fill(ds_i, "InventoryOut")
    Form6.DataGridView2.DataSource = ds_i.Tables("InventoryOut")
    Form6.DataGridView2.ReadOnly = True
End Sub

單擊按鈕時調用該功能

myModule.load_item_in()
myModule.load_item_out()

如您所見,我以相同的形式顯示兩個不同的DataGridView。

我在這里面臨的問題是,我在DataGridView1中顯示了表格,但那里沒有顯示數據。 我的DataGridView2能夠顯示所有數據。 因此,我想知道系統是否混淆了要調出哪些數據,因為無法在DataGridView1上顯示數據

自從我在VB工作以來已經有一段時間了-盡管您將它們放在兩個單獨的子例程中,但我看不到要關閉與數據庫的連接的位置。 每個子程序都應有一個連接開始和一個連接停止。

看起來您在兩個函數中都使用了相同的DataSet,並在每次調用之前將其重置。

所述ds_i.Reset()在方法load_item_out()被清除了第一方法的數據load_item_in()檢索。 在填充DataAdapter之前,刪除您的DataSet“重置”並添加一個DataTable清除。

這是我在學校所做的一個項目的datagridview示例-主要形式有4個dgv,每個都有帶有不同選擇語句的代碼塊。 他們都在同一個子目錄中運行,但是有自己的try調用-

   Private Sub Sponsor_Load()
    '-----gridviewB----++++++
    'required try catch +++++
    Try
        'declare variables
        Dim strSelect As String = ""
        Dim cmdSelect As OleDb.OleDbCommand
        Dim drSourceTable As OleDb.OleDbDataReader
        Dim dt As DataTable = New DataTable

        'database opened
        If OpenDatabaseConnectionSQLServer() = False Then

            'database fail - alert user and exit program
            MessageBox.Show(Me, "Database connection error." & vbNewLine &
                                "The application will now close.",
                                Me.Text + " Error",
                                MessageBoxButtons.OK, MessageBoxIcon.Error)
            Me.Close()

        End If

        'select statement
        strSelect = "SELECT * FROM TSponsors WHERE intSponsorID= " & cboSponsor.SelectedValue.ToString

        'pull records from sourcetable
        cmdSelect = New OleDb.OleDbCommand(strSelect, m_conAdministrator)
        drSourceTable = cmdSelect.ExecuteReader

        'load data table
        dt.Load(drSourceTable)

        'populate the datagrid view
        dgvSponsor.DataSource = dt

        'close source table
        drSourceTable.Close()

        'close db connection
        CloseDatabaseConnection()

        'requried try catch - +++++
    Catch excError As Exception

        'display error message
        MessageBox.Show(excError.Message)

    End Try

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM