hi

im using VS .net, MS Access and c# language.

basically i tried to do an update command using oleDbDataAdapter and commandbuilder. i also searched for tutorials but i still cant get things going.

could someone please tell me how come i couldnt generate update and delete commands using oleDbDataAdapter? i managed to do select command and my parameterized query is working well.

i just want to do an update now. what other ways are there for me to do this and also ensure that the changes return correctly to the place that i queried from?

if possible, i hope i can do this in IDE instead of programmatically.

as im a novice, please pardon me and help me with some step by step instructions whenever possible. thank you.
are there any simple walkthrough tutorials that i can follow to accomplish my entire update task? i appreciate it if you could provide me with sample codes or just anything helpful. time's running out... hope to get update going asap..

thanks a lot to all of you! =)

Recommended Answers

All 6 Replies

Which version of C# are you using? The process you describe has been made almost TOO simple in C# 2005 Express.

hi

im not using c# 2005 Express. im using VS .NET 2003

thank you!

I'm not familiar with that version. I'm really new to programming, so the Express edition is all I know anything about, as far as C#.

Greetings:
Actually i spent a lot of time trying to do this with the default updateCommand, but, with no satisfactory results, my suggestion is to use sql commands with an OleDbCommand, what you need is to check if there was an update and if so enter a sql instruction:

if(myDataSet.HasChanges()){
   DataTable update=new DataTable("name of your table");
   update=contenedor.Tables[0];
   int len=0;
   //Check the length of the table rows
   foreach(DataRow myRow in update.Rows)
   {
    len++;
   }
   conexion.Open();
   for(int i=lenI;i<len;i++)
   {
    Object linea=update.Rows[i].ItemArray;
             comandos1=new OleDbCommand("INSERT INTO tabla1"+" VALUES ("+linea[0]+","+linea[1]+","+linea[2]+")",conexion);
    comandos1.ExecuteNonQuery();

  }
  conexion.Close();
}

This is the easy way, overwrite all of them with the new stored values, the beauty of this is that you also insert new records, the problem is that you first need to check that the values are valid and you are not changing protected values, if you want to do it correctly just check wich of the fields was changed by comparing your object (in this case linea) to the db and just change where they don't match.
Hope this helps and sorry for my bad English, it's not my native language :o

oh i see... i can do multiple row updates now...
to take this to a higher level, how do i update multiple rows for ALL of the tables in my Access database?

right now, i only can update multiple rows for a table... so i have no choice but to update tables one by one...

i use dataadapter to generate update commands. using dataadapter i can only select one table to write my SQL codes. how can i update all my tables at one go then??

Greetings:
You could use a loop for the number of the table on your DataTable to update all, there`s a way of updating all in one pass but i think this method gives you more control on the values that you pass to the database, other thing that i just realize is that in this part

DataTable update=new DataTable("name of your table");
update=contenedor.Tables[0];

you could specify all of the tables and refer to them as you need them, but im not sure exactly how, as soon as i get home i`ll give it a go

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.