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