DataAdapter.Update() method updates only DataRow(s) (of DataTable) having RowState = Added, Deleted or Modified
When you first time fill the DataTable using DataAdapter.Fill() method all the DataRows have RowState = Unchanged On Apr 9, 7:07 am, JeffNielson <[email protected]> wrote: > My code below gives no errors, but it doesn't actually update the > database (Access 2000, I believe). If I copy the query from the > console (see that I writeline it), it will run in Access with no > problems. I use VS2005. Yes, I am checking the database in the bin > directory. > > Thanks. > > private void updateGeoCodes(double lat, double lon, object p_3, object > p_4, object p_5, object p_6, object p_7, object p_8, object p_9) > { > > //this is where i update the geocodes > string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data > Source=|DataDirectory|\\EmergencyPreparedness.mdb;Persist Security > Info=True"; > string qry = @"Update [Membership Master] Set Latitude = " > + lat + ", Longitude = " + lon + " Where "; > qry += " [Street 1]= '" + p_3; > qry += "' AND ([Street 2]= '" + p_4 + "' OR [Street 2] is > null) "; > qry += " AND ([D/P]= '" + p_5 + "' OR [D/P] is null) "; > qry += " AND ([City]= '" + p_6 + "' OR [City] is null) "; > qry += " AND ([State/Prov]= '" + p_7 + "' OR [State/Prov] > is null) "; > qry += " AND ([Country]= '" + p_8 + "' OR [Country] is > null) "; > qry += " AND ([Postal]= '" + p_9 + "' OR [Postal] is > null) "; > > Console.WriteLine(qry); > > OleDbConnection conn = new OleDbConnection(connString); > > try > { > OleDbDataAdapter da = new OleDbDataAdapter("SELECT > [Membership Master].[Street 1], [Membership Master].[Street 2], > [Membership Master].[D/P], [Membership Master].City, [Membership > Master].Postal, [Membership Master].[State/Prov], [Membership > Master].Country, [Membership Master].Latitude, [Membership > Master].Longitude from [Membership Master]", conn); > da.UpdateCommand = new OleDbCommand(qry, conn); > DataTable dt = new DataTable(); > da.Fill(dt); > da.Update(dt); > > } > catch (Exception err) > { > Console.WriteLine("Error: " + err); > } > finally > { > conn.Close(); > } > }
