WEB开发网
开发学院数据库MySQL 孜孜不倦的程序员:SQLite 内幕 阅读

孜孜不倦的程序员:SQLite 内幕

 2010-09-08 00:00:00 来源:WEB开发网   
核心提示: 图 6 使用 C#-SQLite StaticvoidAllManagedMain(){SqliteConnectionconn=NewSqliteConnection(@"Version=3,uri=file:persons.sqlite");conn.Open();try

图 6 使用 C#-SQLite

Static void AllManagedMain() 
{ 
 SqliteConnection conn = 
  New SqliteConnection(@"Version=3,uri=file:persons.sqlite"); 
 conn.Open(); 
 try 
 { 
  SqliteCommand cmd = conn.CreateCommand(); 
  cmd.CommandText = "SELECT COUNT(*) FROM Persons"; 
  var ct = cmd.ExecuteScalar(); 
  Console.WriteLine("Count = {0}", ct); 
 
  cmd = conn.CreateCommand(); 
  cmd.CommandText = "SELECT * FROM Persons"; 
  SqliteDataReader reader = cmd.ExecuteReader(); 
  while (reader.Read()) 
  { 
   Console.WriteLine("{0} {1} {2}", reader[0], reader[1], reader[2]); 
  } 
 } 
 finally 
 { 
  conn.Close(); 
 } 
}

请注意,这些 API 与前面的混合模式版本几乎相同(只是类名发生了更改,甚至只是一个大小写问题:例如,作为前缀的“SQLite”与 “Sqlite”)。现在我们已经知道 SQLite 的所有优点,但尚未了解本机模式 DLL 的任何可能的潜在安全问题。

局限性

尽管 SQLite 具有出色的特性,但必须了解其局限性才能在 SQLite 和 SQL Server 之间做出明智的决策。 SQLite 不能提供 SQL Server 所具备的全部功能,但局限远不止此。 SQLite 数据库甚至不允许开发人员将其用于多个线程,更不用说从多个线程访问该数据库。 事实上,也可以这样说,如果有两个程序要同时访问 SQLite 数据库,则可能应该升级到 SQL Server 实例(Express 或其他)。

SQLite 的主要“致胜”法宝在于许多方面与 Access 文件类似,几乎完整的 SQL-92 语法支持,以及读取其他环境(Python、Perl 等)所使用的数据库文件的能力。 从 Silverlight 或电话客户端使用它也是一个高度引起关注的方面,对于本地存储更是如此;例如,通过将 SQLite 数据库插入 Silverlight 隔离存储,可为开发人员提供一个用于存储本地数据的可移植数据库(因为它可以与 Silverlight 代码一起移植)。 请明智地使用 SQLite,它完美地实现了可提供许多重要功能选项的关系数据库统一体。

同样,如果您希望探讨某个特定主题,欢迎给我留言。 毕竟在真正意义上,这是你们的专栏。

祝您工作愉快!

本文示例源代码或素材下载

上一页  5 6 7 8 9 10 

Tags:孜孜不倦 程序员 SQLite

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接