Does it make a difference whether I use SQLCommand
/SQLConnection
instead of OleDbCommand
/OleDbConnection
. Do I get any advantages out of that, from a API comfortability, feature, performance or security perspective? Or any other perspective?
2 Answers
OleDbCommand
and OleDbConnection
are general. SqlCommand
and SqlConnection
are specific to SQL Server, and can take advantage of its features. They also expose the features of SQL Server. For instance, you can use them to manipulate XML columns.
-
3
with sqlconnection you can use transactions and transaction scopes like:
using(var scope = new TransactionScope())
{
//do a lot of stuff with sqlconnection/sqlcommand (s)
scope.Complete()
}
you need to have the msdtc service enabled for this to work
look here http://valueinjecter.codeplex.com/, at the Data Access Layer page where I show this
-
But OleDB has transactions too. I can pass a transaction to multiple commands, commit them and roll them back. What is the advantage of the above? Just nicer to read?– bitbonkCommented Aug 24, 2010 at 18:13