Mads Andersen
Mads Andersen

Reputation: 3153

ADO.net update without SQL?

This might be a dumb question. But does ADO.net support updating to a database without having to write SQL commands?

Example: I have a method that reads from database and keeps the rows in memory. I then modify some of the rows. Is it then possible to make ADO.net update the newest changes to the database without having to write an update SQL statements but instead let ADO.net figure it out?

I am asking this because I might want to update at a much later point. I could just store the SQL statements in a list but then I would be doing many updates instead of just one big one which would take longer time.

Upvotes: 0

Views: 330

Answers (3)

Justin Pihony
Justin Pihony

Reputation: 67075

What you need is some sort of ORM, and ADO is not an ORM. So, no. You must write the SQL. You could maybe simplify things by writing a stored procedure, though. Then you can use ADO parameters

If you want, you can save your changes as objects in memory until you need to actually persist them. Then you can have a mapper that will take the object and write the SQL for you. However, then you are redoing some of the work of what is already done in an ORM

Upvotes: 2

t3rse
t3rse

Reputation: 10124

ADO.NET supports DataAdapters and DataSets which allow you to do the following:

  1. Manipulate data within your DataSet.
  2. Push changes to the database by passing your DataSet as a parameter to the Update method of the DataAdapter.

In order to get the DataAdapter to push the changes it is necessary to specify insert, update, and delete commands. You will have to specify some sql in your command configuration but it is like a template of the sql statement that will update each row that you operate upon rather than your having to manually track changes.

Once you have configured your commands, use the UPDATE method with the DataSet as the parameter and it will persist your changes based on your commands. You will not need to track the individual sql changes.

  1. A sample of configuring commands can be found here.
  2. A sample of calling the update can be found here.

Upvotes: 1

iefpw
iefpw

Reputation: 7042

Like the sql you used to get the data, you need sql to put the data. It also needs to update what column to update. I don't think it can be automatic. Or use the Entity Framework. Probably saving the objects to be updates (IDs) is the way to go or update instantly.

Upvotes: 1

Related Questions