1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Listing Tables in an Access Database ppt

3 338 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Listing Tables in an Access Database
Tác giả Team LiB
Thể loại Presentation
Định dạng
Số trang 3
Dung lượng 14,06 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

The first technique uses the GetOLEDBSchemaTable method to return schema information about user tables.. For the second technique, you'll need a reference to the Primary Interop Assembl

Trang 1

[ Team LiB ]

Recipe 10.14 Listing Tables in an Access Database

Problem

You need a list of all tables in your Access database

Solution

Use the GetOLEDBSchemaTable( ) method of the OleDbConnection class or use ADOX through COM interop

The first technique uses the GetOLEDBSchemaTable( ) method to return schema

information about user tables These results are then displayed

For the second technique, you'll need a reference to the Primary Interop Assembly (PIA) for ADO provided in the file ADODB.DLL; select adodb from the NET tab in Visual Studio NET's Add Reference Dialog You'll also need a reference to Microsoft ADO Ext 2.7 for DDL and Security from the COM tab in Visual Studio NET's Add Reference Dialog

The second technique creates an ADOX Catalog object through COM interop The

Tables property of this object accesses the collection of tables from which the name and other information are displayed

The C# code is shown in Example 10-14

Example 10-14 File: ListAccessTablesForm.cs

// Namespaces, variables, and constants

using System;

using System.Configuration;

using System.Text;

using System.Data;

using System.Data.OleDb;

//

// OLE DB

StringBuilder result = new StringBuilder( );

// Open the OLE DB connection

Trang 2

OleDbConnection conn = new OleDbConnection(

ConfigurationSettings.AppSettings["MsAccess_ConnectString"]);

conn.Open( );

// Retrieve schema information for all tables

DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] {null, null, null, "TABLE"});

result.Append("TABLE" + Environment.NewLine);

// Iterate over the collection of table records

foreach(DataRow row in schemaTable.Rows)

{

result.Append(row["TABLE_NAME"] + Environment.NewLine);

}

conn.Close( );

resultTextBox.Text = result.ToString( );

// ADOX

StringBuilder result = new StringBuilder( );

// Open the connection

ADODB.Connection conn = new ADODB.ConnectionClass( );

conn.Open(ConfigurationSettings.AppSettings["MsAccess_ConnectString"],

"", "", 0);

// Create an ADOX catalog object for the connecton

ADOX.Catalog cat = new ADOX.Catalog( );

cat.ActiveConnection = conn;

result.Append("TABLE\tKEY" + Environment.NewLine);

// Iterate over the collection of tables

foreach(ADOX.Table table in cat.Tables)

{

if(table.Type == "TABLE")

{

result.Append(table.Name + Environment.NewLine);

// Iterate over the collection of keys for the table

foreach(ADOX.Key key in table.Keys)

{

result.Append("\t" + key.Name + " (");

// Iterate over the collection of columns for the key

Trang 3

foreach(ADOX.Column col in key.Columns)

{

result.Append(col.Name + ", ");

}

result.Remove(result.Length - 2, 2).Append(")" +

Environment.NewLine);

}

result.Append(Environment.NewLine);

}

}

cat = null;

conn.Close( );

resultTextBox.Text = result.ToString( );

Discussion

The solution shows two techniques that you can use to get a list of tables in an Access database

The first technique uses the GetOleDbSchemaTable( ) method of the OLE DB connection object This technique is discussed in Recipe 10.2

The second technique uses ActiveX Database Objects Extensions (ADOX) from COM interop ADOX has a Tables property that exposes a collection of Table objects in the database The user tables are determined by iterating over the collection of tables and selecting only those where Type property of the Table is TABLE

The Table object also exposes collections of Columns, Indexes, Keys, and Properties that can be used to further investigate the database As an example, the sample code iterates over the collection of Keys in each table to get the list of both primary and foreign keys

[ Team LiB ]

Ngày đăng: 26/01/2014, 10:20

TỪ KHÓA LIÊN QUAN

w