简体   繁体   中英

Filling DataGridView

My issue is getting the data from my access database to show up in the view. Whenever I run the application it errors out right before the da2.Fill(ds2, "Inventory"). The tables that I am using are called Product and Inventory. Have tried everything I could think of, any hints/sources why would be very appriciated.

Public Class Form1
Dim con As New OleDb.OleDbConnection
Dim ds As New DataSet ' in memory version of database
Dim da As OleDb.OleDbDataAdapter
Dim sql As String

Dim ds2 As New DataSet
Dim da2 As OleDb.OleDbDataAdapter
Dim sql2 As String

Dim strProdNo As String
Dim inc, MaxRows As Integer

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 'ComputerWarehouseProjectDataSet.Product' table. You can move, or remove it, as needed.
    'Me.ProductTableAdapter.Fill(Me.ComputerWarehouseProjectDataSet.Product)
    con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = ComputerWarehouseProject.mdb"
    con.Open() 'put a try catch around this
    sql = "SELECT * FROM Product order by ProdNo"
    da = New OleDb.OleDbDataAdapter(sql, con)
    da.Fill(ds, "ComputerWarehouseProject")
    con.Close()
    MaxRows = ds.Tables("ComputerWarehouseProject").Rows.Count
    inc = 0
    NavigateRecords()

End Sub
Private Sub NavigateRecords()
    Try
        txtId.Text = ds.Tables("ComputerWarehouseProject").Rows(inc).Item(0)
        txtPart.Text = ds.Tables("ComputerWarehouseProject").Rows(inc).Item(1)
        txtQoh.Text = ds.Tables("ComputerWarehouseProject").Rows(inc).Item(3)
        txtCost.Text = ds.Tables("ComputerWarehouseProject").Rows(inc).Item(4)
        'MessageBox.Show("Works 1")
        txtSugPrice.Text = ds.Tables("ComputerWarehouseProject").Rows(inc).Item(5)
        cbProd.Text = ds.Tables("ComputerWarehouseProject").Rows(inc).Item(0) & " " & ds.Tables("ComputerWarehouseProject").Rows(inc).Item(1)
        'MessageBox.Show("Works 2")
        txtRecBeg.Text = (inc + 1).ToString
        'MessageBox.Show("Works 3")
        txtRecEnd.Text = ds.Tables("ComputerWarehouseProject").Rows.Count.ToString
        'MessageBox.Show("Works 4")
        bldInv()
        'MessageBox.Show("Works 5")
    Catch
        MessageBox.Show("Data Error! Cannot Navigate to Selected Record at position " & inc.ToString)

    End Try

End Sub
Private Sub bldInv()

    strProdNo = ds.Tables("ComputerWarehouseProject").Rows(inc).Item(0)
    sql2 = "Select * from Inventory where ProdNo = " + strProdNo
    ds2.Clear()
    MessageBox.Show(sql2)
    da2 = New OleDb.OleDbDataAdapter(sql2, con)

    MessageBox.Show("Right before fill")
    da2.Fill(ds2, "Inventory")


    dgvInv.DataSource = ds2.Tables("Inventory")
    dgvInv.AutoResizeColumns()


End Sub

You could also try this:

da.Fill(ds)
con.Close()
MaxRows = ds.Tables(0).Rows.Count

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM