2011-01-22 49 views
6

我想阅读C#.NET Windows应用程序中的表和列信息。我知道有SQL Server的SMO基本访问。在类似的地方有SQLite的任何API?在C#.NET中读取SQLite表信息

+0

您是否在寻找这个? http://stackoverflow.com/questions/93654/is-there-a-net-c-wrapper-for-sqlite – 2011-01-22 21:30:19

+0

@Martin Buberl,这不是同一个问题...... OP的不寻找一个ADO.NET提供者,他在问如何访问数据库元数据 – 2011-01-22 22:03:56

回答

16

可以使用GetSchema方法:

DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.SQLite"); 
using (DbConnection connection = factory.CreateConnection()) 
{ 
    connection.ConnectionString = @"Data Source=D:\tmp\test.db"; 
    connection.Open(); 
    DataTable tables = connection.GetSchema("Tables"); 
    DataTable columns = connection.GetSchema("Columns"); 
    tables.Dump(); 
    columns.Dump(); 
} 

GetSchema返回一个包含有关指定的表,列,或任何信息的DataTable。有效GetSchema论据的SQLite包括:

  • MetaDataCollections
  • DataSourceInformation
  • 数据类型
  • ReservedWords
  • 目录
  • 指标
  • IndexColumns
  • 查看
  • 排列viewColumns
  • ForeignKeys
  • 触发器