Griffiths, Richard
R.Griffiths at bury.gov.uk
Thu Dec 8 03:28:23 CST 2005
Hi I believe you need to have an update command associated with your dataadapter. da.updatecommand("SQL to update the database - e.g. Update ItemMast set ......" (there is an inset and delete command as well) At the moment you are simply updating the disconnected dataset/recordset - you need to explicitly write the changes to the BE. Sorry I can't add more as I use a different approach for dataaccess (a DAL (data access layer) dll that sort of does it all for me) Loads of stuff out there for exact code examples. HTH Richard -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of David McAfee Sent: 08 December 2005 05:48 To: Access Developers discussion and problem solving Subject: Re: [AccessD] VB.Net, trying to update some records in Access I found that after I sent off the message. This is currently what I am working with: Dim row As DataRow Dim ds As DataSet Dim da As OleDbDataAdapter Dim conn As OleDbConnection Dim Connstr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MOMS_UPDATE\MOMS_UPDATE.MDB;Persist Security Info=False" Dim mySQL As String = "SELECT ItemNo, Desc1 FROM Itemmast WHERE Desc1 Like " & Chr(34) & "%|%" & Chr(34) & ";" Try conn = New OleDbConnection(Connstr) da = New OleDbDataAdapter(mySQL, conn) ds = New DataSet da.Fill(ds) For Each row In ds.Tables(0).Rows row.BeginEdit() row.Item("Desc1") = replacePipes(row.Item("Desc1")) Next da.Update(ds.Tables(0)) MessageBox.Show("Done") Catch ex As Exception MessageBox.Show("Error " & Err.Number & " : " & ex.Message.ToString()) End Try The code runs through without any errors, only the Access table is never updated. Gawd, I miss DAO. The code is just a small sample test of a larger project. This project takes cdb tables from a pocket PC then puts them into an Access table, which is read into datasets that are passed to a web service which "synchronizes" with a SQL Server database. and data is brought back in reverse order. One table has an item description field which contains apostrophes which were hanging up a process. These apostrophes were converted to Pipes and I want to simply run this function on the data before it is pumped back into the PPC. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Charlotte Foust Sent: Wednesday, December 07, 2005 5:24 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] VB.Net, trying to update some records in Access What do you want it to do and why are you using AcceptChanges? That removes the modified flag from the row. And calling in update on the adapter does tell it to write the updates back to the table. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of David McAfee Sent: Wednesday, December 07, 2005 4:22 PM To: Access Developers discussion and problem solving Subject: [AccessD] VB.Net, trying to update some records in Access Does anyone see what I am missing? I am trying to update some rows in a temporary Access database by changing any pipes ( | ) to apostrophes ( ' ). It runs through the code just fine. It's like the dataset is writing the updates back to the table. Dim strTemp As String Dim row As DataRow Dim ds As DataSet Dim da As OleDbDataAdapter Dim conn As OleDbConnection Dim mystr As String Dim Connstr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MOMS_UPDATE\MOMS_UPDATE.MDB;Persist Security Info=False" Dim mySQL = "SELECT ItemNo, Desc1 FROM Itemmast WHERE Desc1 Like " & Chr(34) & "%|%" & Chr(34) & ";" Try conn = New OleDbConnection(Connstr) da = New OleDbDataAdapter(mySQL, conn) ds = New DataSet da.Fill(ds) For Each row In ds.Tables(0).Rows strTemp = "" strTemp = replacePipes(row.Item("Desc1")) row.BeginEdit() 'row("Desc1") = replacePipes(row("Desc1")) row.Item("Desc1") = strTemp 'row.EndEdit() row.AcceptChanges() Next 'ds.AcceptChanges() da.Update(ds.Tables(0)) MessageBox.Show("dONE") Catch ex As Exception MessageBox.Show("Error " & Err.Number & " : " & ex.Message.ToString()) End Try -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com