Connecting to an ODBC Data Source

Problem

You want to access your data source using an ODBC provider from your .NET application.

Solution

Use the ODBC .NET data provider to access data exposed through an ODBC driver.

The sample code contains a single event handler:

Connect Button.Click

Creates an OdbcDataAdapter and uses it to fill a DataTable with the Category table from the Northwind sample database. The default view of the table is bound to a data grid on the form.

The C# code is shown in Example 1-1.

Example 1-1. File: OdbcConnectForm.cs

// Namespaces, variables, and constants using System; using System.Configuration; using System.Data; using System.Data.Odbc; // . . . private void connectButton_Click(object sender, System.EventArgs e) { // Create the DataAdapter. String sqlSelect = "SELECT CategoryID, CategoryName, Description " + "FROM Categories"; OdbcDataAdapter da = new OdbcDataAdapter(sqlSelect, ConfigurationSettings.AppSettings["Odbc_ConnectString"]); // Create the table, fill it, and bind the default view to the grid. DataTable dt = new DataTable( ); da.Fill(dt); dataGrid.DataSource = dt.DefaultView; }

Discussion

The ODBC .NET data provider communicates with native ODBC drivers through COM interop (.NET's interoperability layer for COM). The following ODBC providers are guaranteed to be compatible with the ODBC.NET data provider:

The .NET data provider for ODBC connects to ODBC data sources through the OdbcConnection object. The ODBC driver connection string is specified using the ConnectionString property. It includes settings needed to establish the connection to the data source. The connection string format closely matches the ODBC connection string format. Additionally, you can specify an ODBC data source name (DSN) or file DSN by setting the ConnectionString attribute to "DSN=myDSN" or "FileDSN=myFileDSN" . For more information about specifying ODBC connection strings, see the topic "SQLDriverConnect" in the ODBC Programmer's Reference within MSDN Library.

Visual Studio also supports creating ODBC data source connections visually:

The .NET ODBC data provider requires a reference to the System.Data.Odbc namespace in .NET Framework Version 1.1. In Version 1.0, the namespace is Microsoft.Data.Odbc . Add a .NET Reference to Microsoft.Data.Odbc.dll for a .NET Framework Version 1.0 project.

The .NET ODBC .NET data provider ships with .NET Framework Version 1.1. The data provider can be downloaded from http://msdn.microsoft.com/downloads for .NET Framework Version 1.0.

Категории