![](/img/trans.png)
[英]Problem in Data display from database using datagridview in vb.net
[英]Display data from database into DataGridView
我的Access數據庫中有兩個表,用於存儲Item In
和Item 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.