|
-
May 14th, 2012, 06:41 AM
#1
Problem with updataing from a datagridview
Hello All
I am having a problem with an application that displays data in datagridview depending on a selection from a combo box.
The problem occurs when I want to write the data back to the database.
I get the following error:
"Update unable to find TableMapping['Product'] or DataTable 'Product'."
Is this because the table in the dataset is filled in a private sub? If so how do I make it public?
Any ideas what is wrong. Code is as follows:
Code:
Imports System.Data.OleDb
Public Class ProductSpecFrm
Dim csProduct As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\VB\signage\signage\product spec.accdb")
Dim daProduct As New OleDbDataAdapter("SELECT product.* from product", csProduct)
Dim daType As New OleDbDataAdapter("SELECT DISTINCT type FROM product", csProduct)
Dim dsProduct As New DataSet
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'Close the Product Spec sub form
Me.Close()
End Sub
Private Sub ProductSpecFrm_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Label1.Text = ""
'Maximise the Product Spec sub form on load
Me.WindowState = FormWindowState.Maximized
'Load the Datagrid with from dataset
daProduct.Fill(dsProduct, "Product")
dgProduct.DataSource = dsProduct.Tables("Product")
'Hide Columns
dgProduct.Columns("ProductID").Visible = False
'Change Row Colours
dgProduct.RowsDefaultCellStyle.BackColor = Color.LightBlue
dgProduct.AlternatingRowsDefaultCellStyle.BackColor = Color.White
'Load the Type combobox
dsProduct.Tables.Clear()
daProduct.Fill(dsProduct, "Type")
With ComboBox1
.DataSource = dsProduct.Tables("Type")
.DisplayMember = "Type"
.ValueMember = "Type"
.SelectedIndex = 0
End With
End Sub
Private Sub dgProduct_CellContentClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgProduct.CellContentClick
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
'Filter Datagrid by Type combobox
dsProduct.Tables.Clear()
Dim ComboVal As String = ComboBox1.Text
Dim daTypeFilter As New OleDbDataAdapter("SELECT product.* FROM product WHERE type='" & ComboVal & "'", csProduct)
daTypeFilter.Fill(dsProduct, "Type Filtered")
dgProduct.DataSource = dsProduct.Tables("Type Filtered")
Label1.Text = "Filtered by: " & ComboVal
End Sub
Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
End Sub
Private Sub CopyBtn_Click(sender As System.Object, e As System.EventArgs) Handles CopyBtn.Click
'Copy the current cells contents to the clipboard
Dim CurrentRowIndex As Integer = dgProduct.CurrentRow.Index
Dim ToClipBoard As String
ToClipBoard = dgProduct.Item(2, CurrentRowIndex).Value
Clipboard.SetDataObject(ToClipBoard, True)
End Sub
Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
'Update the data back to the database
daProduct.Update(dsProduct, "Product")
MsgBox("Data updated")
End Sub
End Class
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|