【问题标题】:Most Efficient way to access schema with ODBC and OleDB使用 ODBC 和 OleDB 访问模式的最有效方法
【发布时间】:2009-01-16 02:44:32
【问题描述】:

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

谢谢

【问题讨论】:

    标签: schema odbc oledb


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我认为 smo 不适用于 ODBC 和 OleDB。它不是只适用于 SqlServer 吗?
      • SQL Server Express 比 MS Access 便宜。
      • john.strez--啊...你是对的。我一直在 SMO 上低头,并没有为树木而森林。
      猜你喜欢
      • 1970-01-01
      • 2013-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      相关资源
      最近更新 更多