在C#.NET中读取SQLite表信息

Omk*_*kar 8 .net c# sqlite winforms

我想阅读C#.NET Windows应用程序中的表和列信息.我知道SQL Server有SMO基本访问权限.在类似的基础上有SQLite的API吗?

Tho*_*que 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();
}
Run Code Online (Sandbox Code Playgroud)

GetSchema返回一个DataTable,其中包含有关表,列或您指定的任何内容的信息.GetSchemaSQLite的有效参数包括:

  • MetaDataCollections
  • DataSourceInformation
  • 数据类型
  • ReservedWords
  • 产品目录
  • 索引
  • IndexColumns
  • 查看
  • 排列viewColumns
  • ForeignKeys
  • 触发器

  • 根据[this stackoverflow post] [1],getSchema对SQLite不起作用.我有同样的问题,现在使用"SQLiteCommand("PRAGMA table_info('tracks')",DB)"[1]:http://stackoverflow.com/questions/3268986/getting-table-schema-doesnt-seem -to-工作与系统数据-sqlite的 (3认同)