• 0

[C#] ADODB Connection State


Question

Hey guys..

I'm a C# newbie, I was able to get my program to connect to an Access DB using ADO, but now I wanna wask about the Connection.State property, and I don't know how....I mean is it Connection.State=1 or Connection.State=adStateOpen ?? so I was wondering if anyone can give me some pointers....also if you have some info on Error Handling I would appreciate it :laugh:

Thanks ;)

Link to comment
https://www.neowin.net/forum/topic/249301-c-adodb-connection-state/
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Hiya ArBoK,

There are no "magic numbers" in .NET (appart from one function that uses a magic number). Absolutely everything is object oriented and usually eccepts and returns objects.

The first step in handling exceptions is to use the Try/Catch block:

try
{
 ? ?// some code here to attempt to execute
}
catch (Exception Ex)
{
 ? System.Windows.Forms.MessageBox(Ex.Message);
}

Hope this hel:D :D

- Tranq

  • 0

I don't really program in C# but here is some vb.net code which does the trick

it should not be that hard to convert it to C#, just a few semicolons here and there!

' You need the following data library
Imports System.Data.OleDb

' Declare variables
        Dim strConnectionParameters As String

        ' Connection string
        strConnectionParameters = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDatabasePath & ";Jet OLEDB:System database=" & strDatabaseWorkgroup

        ' Create a new connection to the database & open it
        Try
            myConnection = New OleDbConnection(strConnectionParameters)
            myConnection.Open()
        Catch ex As Exception
            MessageBox.Show("Aection to the database could not be established. The returned error was: " & ex.Message, "Database Connection Failed", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        End Try


' AND TO GET STATE

        ' 0 (closed), 1 (open), 2 (connecting), 4 (executing), 8 (fetching), 16 (broken)
        Dim result As Short = myConnection.State
        MsgBox(result)

  • 0

Don't assume that a given connection state will always equate to a given number (e.g. 0 = closed), as the numbers could be changed in the future by MS. Plus, using numbers can be difficult to read if the person reading doesn't know that 0 is closed, 1 is open and so on.

There is an enumeration named "ConnectionState" in the System.Data namespace. Use that instead:

ConnectionState.Closed

ConnectionState.Open

And so on. Intellisense would tell you this information as well.

  • 0
  DrZoidberg said:
Don't assume that a given connection state will always equate to a given number (e.g. 0 = closed), as the numbers could be changed in the future by MS.  Plus, using numbers can be difficult to read if the person reading doesn't know that 0 is closed, 1 is open and so on.

There is an enumeration named "ConnectionState" in the System.Data namespace.  Use that instead:

ConnectionState.Closed

ConnectionState.Open

And so on. Intellisense would tell you this information as well.

584992896[/snapback]

That's an enum, which has an integer backing it ;). You should always use Enum's, because they're a lot easier to read, and you dont have to remember integer values.

  • 0
  Sn1p3t said:
That's an enum, which has an integer backing it ;). You should always use Enums, because they're a lot easier to read, and you dont have to remember integer values.

584993667[/snapback]

Err, yes. I already said that in my post:

  DrZoidberg said:
Plus, using numbers can be difficult to read if the person reading doesn't know that 0 is closed, 1 is open and so on.
  • 0
  DrZoidberg said:
Err, yes.  I already said that in my post:
  DrZoidberg said:
Plus, using numbers can be difficult to read if the person reading doesn't know that 0 is closed, 1 is open and so on.

584996531[/snapback]

Oh, I know. I was simply explaining that to anyone who didn't know what it was :p

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.