Solved

Transactions in VB.net

Posted on 2004-04-15
6
6,142 Views
Last Modified: 2013-12-25
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.
0
Comment
Question by:manjirit
6 Comments
 
LVL 39

Expert Comment

by:appari
Comment Utility

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
 
LVL 7

Expert Comment

by:ramesh12
Comment Utility
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
 

Author Comment

by:manjirit
Comment Utility
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
 
LVL 41

Accepted Solution

by:
graye earned 50 total points
Comment Utility
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

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

5 Experts available now in Live!

Get 1:1 Help Now