我正在使用 C# 制作 DAL 模板,我想知道使用 ODBC 和 OleDB 访问架构信息的最有效方法是什么。我需要列、列类型和主键信息。
谢谢
对于 OleDb,有一个 OleDbConnection.GetoleDbSchemaTable() 方法。我已经将它与 Access 一起使用。
我在 GitHub 上的代码中有一个示例: SchemaValidator.cs
在 OdbcConnection IIRC 上也应该有一个 .Schema() 方法。
我注意到实际返回的值可能因数据库而异,因此您需要进行大量检查和调试以查看他返回的值可能是什么。
使用 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 );
}
}
从这里,您可以获取数据库中的表(和其他对象)。