2011-01-22 91 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
  • 觸發器