Transactions in VB.net

Hello,

I am trying to use transactions in my VB.net program. I have opened a connection, and have opened a transaction on it and

Dim m_objConn As OleDb.OleDbConnection
Dim m_objTrans As OleDb.OleDbTransaction
Dim m_objDA As OleDb.OleDbDataAdapter

m_objTrans = m_objConn.BeginTransaction()

I have a function like this :

Public Function ExecuteCommand(ByVal strQuery As String) As DataSet

        '*** Create a new Data Adapter by passing the query and the connection
        '*** object to it. Fill the dataset against that Dataadapter and
        '*** return the dataset back to the calling function.
        Dim objDS As New DataSet()
        Dim objDA As New OleDb.OleDbDataAdapter(strQuery, m_objConn)


        objDA.Fill(objDS)

        Return objDS
End Function

I am not using any command object in the code.

1. Is that ok? Can i populate my DAtaSet without using the command object?
2. When I execute the program, an InvalidOperationException is thrown with the following additional info:

Execute requires the command to have a transaction object when the connection assigned to the command is in a pending local transaction. The transaction property of the command has not been initialized.

Now The question is, when I am not using the command object, why am I getting this error?


Thanks.
manjiritAsked:
Who is Participating?
 
grayeConnect With a Mentor Commented:
The use of the Oledb "flavor" of the ADO.Net suite is suspicous...  What database back-end are you using?  File-based databases (like Microsoft Access) aren't gonna support ADO.Net transactions.
0
 
appariCommented:

when you are not using any data update sqls like Insert/Update/Delete why to start a transaction?

Remove m_objTrans = m_objConn.BeginTransaction()
0
 
ramesh12Commented:
When you use Adapter,  internally the adapter object uses the Command objects

C here

http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemDataSqlClientSqlDataAdapterClassTopic.asp?frame=true
0
 
manjiritAuthor Commented:
Hi Ramesh,

Thanks for ur reply. THe thing is I am using the data update sqls, which I pass into strQuery string. I need to have the beginTransaction on connection. The thing is the adapter may be using the command object internally. But since I am not using one explicitely, how can I enlist a transaction to it? I am using only strQuery string and no command object.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.