0
我有一個由datagridview和兩個按鈕的更新和加載所有..我用fillby方法從數據庫中獲取數據。該查詢似乎工作正常,但數據不顯示在gridview中。Datagrid和數據庫
在查詢中,如果返回的行是2,它將在gridview中顯示3行,但全部爲空。
Imports System.Data
Imports System.Data.OleDb
Imports System.EventArgs
Imports System.Data.OleDb.OleDbConnection
Imports System.Data.OleDb.OleDbCommand
Public Class Form1
Inherits System.Windows.Forms.Form
Dim wrkdir As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.Location())
Dim da As New OleDbDataAdapter
Dim ds As New DataSet
Dim bs As New BindingSource
Dim edit As Boolean
'Dim cnn As OleDbConnection
Dim cnn As New OleDbConnection("Provider=microsoft.jet.oledb.4.0;Data Source=E:\Project-Hemtech\HemDatabase1.mdb;")
'cnn = New OleDbConnection("Provider=microsoft.jet.oledb.4.0;Data Source=E:\Project-Hemtech\HemDatabase1.mdb;")
'cnn.Open()
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
If edit Then
da.Update(ds, "partno")
edit = False
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'HemDatabase1DataSet.partno' table. You can move, or remove it, as needed.
Me.PartnoTableAdapter.Fill(Me.HemDatabase1DataSet.partno)
dgv1.DataSource = bs
'Dim cnn As New OleDbConnection("Provider=microsoft.jet.oledb.4.0;Data Source=E:\Project-Hemtech\HemDatabase1.mdb;")
'cnn = New OleDbConnection("Provider=microsoft.jet.oledb.4.0;Data Source=E:\Project-Hemtech\HemDatabase1.mdb;")
'cnn.Open()
End Sub
Private Sub button2_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button2.Click
ds.Tables.Clear()
If tsText.Text <> "" Then
Dim sql As String = "SELECT partno.partnum, partno.partname, partno.partdesc, partno.partqty " & _
"FROM(partno)" & _
"WHERE (((partno.type)='" & tsText.Text & "'));"
Dim cmd As New OleDbCommand(sql, cnn)
da.SelectCommand = cmd
Dim cmdBuilder As New OleDbCommandBuilder(da)
da.Fill(ds, "partno")
bs.DataSource = ds.Tables(0)
Else
Exit Sub
End If
End Sub
Private Sub button3_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles button3.Click
ds.Tables.Clear()
Dim sql As String = "SELECT * FROM partno;"
Dim cmd As New OleDbCommand(sql, cnn)
da.SelectCommand = cmd
Dim cmdbuilder As New OleDbCommandBuilder(da)
da.Fill(ds, "partno")
bs.DataSource = ds.Tables(0)
End Sub
Private Sub FillByToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button3.Click
Try
Me.PartnoTableAdapter.FillBy(Me.HemDatabase1DataSet.partno, tsText.Text)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
End Class
我這樣做..當我的兩個按鈕添加,它停止顯示的數據。我加在更新按鈕,它會更新!對於加載按鈕,我使用: dgv1.DataSource = Me。 HemDatabase1Dataset.partno 但是,這兩個表面上都很好,但在單擊加載按鈕時,它不會顯示指定類型的更新數據 即。我的新紀錄是電子類型。 當我點擊更新,上述提到的更改後,它顯示網格中更新的記錄。當我點擊「加載全部」按鈕時,通過提及上面的類型,它給了我之前的類型電子記錄,但不是新添加的。 – Ruchi22