0

我正在使用 C# 制作 DAL 模板,我想知道使用 ODBC 和 OleDB 访问架构信息的最有效方法是什么。我需要列、列类型和主键信息。

谢谢

4

2 回答 2

3

对于 OleDb,有一个 OleDbConnection.GetoleDbSchemaTable() 方法。我已经将它与 Access 一起使用。

我在 GitHub 上的代码中有一个示例: SchemaValidator.cs

在 OdbcConnection IIRC 上也应该有一个 .Schema() 方法。

我注意到实际返回的值可能因数据库而异,因此您需要进行大量检查和调试以查看他返回的值可能是什么。

于 2009-01-16T03:26:55.563 回答
0

使用 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 );
    }
}

从这里,您可以获取数据库中的表(和其他对象)。

于 2009-01-16T02:52:09.520 回答