Самый эффективный способ доступа к схеме с ODBC и OleDB - PullRequest
0 голосов
/ 16 января 2009

Я делаю шаблон DAL с C #, и мне интересно, каков наиболее эффективный способ доступа к информации схемы с ODBC и OleDB. Мне нужны столбцы, типы столбцов и информация о первичном ключе.

спасибо

Ответы [ 2 ]

3 голосов
/ 16 января 2009

Для OleDb существует метод OleDbConnection.GetoleDbSchemaTable (). Я использовал это с Access.

У меня есть пример в этом коде на GitHub: SchemaValidator.cs

Должен быть метод .Schema () и для OdbcConnection. IIRC.

Я заметил, что фактические возвращаемые значения могут варьироваться в зависимости от базы данных, поэтому вы захотите сделать немало проверок и отладок, чтобы увидеть, какие значения он может вернуть.

0 голосов
/ 16 января 2009

Использование объектов управления SQL Server:

http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.aspx

например:

Microsoft.SqlServer.Management.Smo.Server s = new 
        Microsoft.SqlServer.Management.Smo.Server( @"DUFF\SQLEXPRESS" );

foreach ( Database db in s.Databases )
{
    if ( ! db.IsSystemObject )
    {
        listboxDatabase.Items.Add( db.Name );
    }
}

отсюда вы можете получить таблицы в базе данных (и другие объекты).

...