473,786 Members | 2,775 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Using ADOX with C#.

I am using ADOX to make changes to an Access database that would be
difficult to do via the System.Data.OLE DBClient. So far I have no
trouble actually doing the work, however, I have trouble closing the
connection to the Access database.

//open connection
ADOX.CatalogCla ss connection = new ADOX.CatalogCla ss();
connection.let_ ActiveConnectio n(this.Connecti onString);

//do the work
....

//close the connection
((ADODB.Connect ion) connection.Acti veConnection).C lose();
Marshal.Release ComObject(conne ction);

Even though the code to close the connection does cause an error, it
doesn't actually close the connection, because if I try to connect to
the database later, it errors out saying that it is exclusively locked.

How do I actually close the connection created via ADOX?

Thanks
Jan 6 '06 #1
4 10745
Frank,

Just off the top of my head, do you have connection pooling turned on?
Perhaps this has something to do with it.

Also, did you dispose of the catalog class properly?
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Frank Rizzo" <no**@none.co m> wrote in message
news:e5******** *****@TK2MSFTNG P14.phx.gbl...
I am using ADOX to make changes to an Access database that would be
difficult to do via the System.Data.OLE DBClient. So far I have no trouble
actually doing the work, however, I have trouble closing the connection to
the Access database.

//open connection
ADOX.CatalogCla ss connection = new ADOX.CatalogCla ss();
connection.let_ ActiveConnectio n(this.Connecti onString);

//do the work
...

//close the connection
((ADODB.Connect ion) connection.Acti veConnection).C lose();
Marshal.Release ComObject(conne ction);

Even though the code to close the connection does cause an error, it
doesn't actually close the connection, because if I try to connect to the
database later, it errors out saying that it is exclusively locked.

How do I actually close the connection created via ADOX?

Thanks

Jan 6 '06 #2
Nicholas Paldino [.NET/C# MVP] wrote:
Frank,

Just off the top of my head, do you have connection pooling turned on?
Perhaps this has something to do with it.

Also, did you dispose of the catalog class properly?
Well, I guess that's the crux of the matter. How does one dispose of it
properly?

I thought

Marshal.Release ComObject(conne ction);

will do the trick.

Jan 6 '06 #3
Frank,

Yes, you are releasing the connection, but that is not the only COM
object there is. There is also the catalog object.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Frank Rizzo" <no**@none.co m> wrote in message
news:u6******** ******@TK2MSFTN GP09.phx.gbl...
Nicholas Paldino [.NET/C# MVP] wrote:
Frank,

Just off the top of my head, do you have connection pooling turned
on? Perhaps this has something to do with it.

Also, did you dispose of the catalog class properly?


Well, I guess that's the crux of the matter. How does one dispose of it
properly?

I thought

Marshal.Release ComObject(conne ction);

will do the trick.


Jan 6 '06 #4
Nicholas Paldino [.NET/C# MVP] wrote:
Frank,

Yes, you are releasing the connection, but that is not the only COM
object there is. There is also the catalog object.


Connection is the catalog object. Consider the code:

//open connection
ADOX.CatalogCla ss connection = new ADOX.CatalogCla ss();
connection.let_ ActiveConnectio n(this.Connecti onString);

//do the work
....

//close the connection
((ADODB.Connect ion) connection.Acti veConnection).C lose();
Marshal.Release ComObject(conne ction);
Jan 6 '06 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
5568
by: Developer98115 | last post by:
I need help getting schema information from an existing SQL Server database. My thought was that you could use ADOX via InterOp. Has anyone done this successfully and how? I have created a Interop reference to the ADOX COM component from my C# project. I am able to open the SqlConnection successfully but it fails with an exception when I try to set the ..ActiveConnection property of the ADOX database catalog object. Another strange...
2
6127
by: Gandalf | last post by:
I'm creating relationships between tables using VBA and ADOX. I can create one-to-one relationships with an inner join, but I can't figure out how to create these relationships with an outer join (specifically a left outer join). I'm including the code that creates the relationships with the inner join. Any help or suggestions would be greatly appreciated. Thanks! <----- CODE FOLLOWS ----->
6
2704
by: Claudia Fong | last post by:
Hello, I'm using the sql statement below to create a new table from an old one. But I found a little problem with that. In my old table DEP2004, I have one field's property allow zero length is YES, but after creating the new table DEP2005, this property change to NO. It means it won't allow zero lenght.. How can I change this property in C#?
2
7847
by: Randy | last post by:
I am trying to relink some Oracle tables in an Access database via VB.NET and ADOX. I receive the following error when executing the cat.ActiveConnection link "Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another. Here is my code Dim cat As ADOX.Catalog = New ADOX.Catalo Dim tbl As ADOX.Tabl Dim OracleConn As String = "Provider=MSDAORA.1;Data Source=xzy;User ID=xyz;Password=xyz
2
8658
by: Tim Frawley | last post by:
I am attempting to change the ODBC Link Provider String in an Access database linked to an Oracle server using ADOX in VB.NET. I created some code using the example from post: http://groups.google.com/groups?q=RefreshLinkedTablesWithADOX()&hl=en&lr=&selm=qb1ctvcdoftenojhpp34lb6fjb9ss8qd9c%404ax.com&rnum=1 My code simply replaces the DSN, UID, PWD and DBQ values in the ADOXTable.Properties("Jet OLEDB:Link Provider String").Value string...
3
1713
by: gaffar | last post by:
Sir, Using ADOX I am developing an application in vb.net and the backend database is ms-access. i have created ms-access databse and tables and assigned primary keys to the tables through the vb.net application(code is below) by using ADOX. Now my problem is i want delete one record from master table, that deleted record automatically deleted from child tables. so, i want the code how to establish relation ships between the tables and...
2
5524
by: genojoe | last post by:
Using ADOX to update a Property does not work. I want to change the Access database for a linked table. My abridged code is: Dim oCAT As ADOX.Catalog oCAT = New ADOX.Catalog oCAT.ActiveConnection = goConnection Dim t As ADOX.Table Dim p As ADOX.Property
1
3463
by: sunlight_sg | last post by:
Hello, i am using ADOX + VB .NET to create a Access Database programmatically. I plan to set some properties of the column such primary key. The code is as follows: Dim cat As ADOX.Catalog Dim tbl As ADOX.Table Dim idx As ADOX.Index Dim prp As ADOX.Property
1
11598
by: Hexman | last post by:
I'm creating a new Access table using ADOX. I can add columns and indexes, but I'm baffled on how to change field properties. Can someone give me a hand? Want to change properties such as: Description (Column property?), Decimal Places, Caption, Default value, Required indicator, Format, etc.... TIA,
3
3567
by: Miro | last post by:
Something weird I have run into when trying to add a boolean field to an Access table by code. -Just wondering if anyone else has run into this. ( vb.net 2005 express ) If I add any other field other than boolean the "command" version of adding a field works great. But if I try to add a boolean field, I get an exception error when its trying to be added, so instead I have to use the function meathod. -Code is below.
0
10363
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10164
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10110
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9962
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8992
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
6748
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5398
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5534
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
3
2894
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.