孜孜不倦的程序员:SQLite 内幕
2010-09-08 00:00:00 来源:WEB开发网图 5 使用 System.Data.SQLite
static void ManagedWrapperMain()
{
var connStr = new SQLiteConnectionStringBuilder()
{ DataSource = "persons.sqlite" };
using (SQLiteConnection conn = new SQLiteConnection(connStr.ToString()))
{
conn.Open();
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();
DataTable dt = new DataTable();
dt.Load(reader);
foreach (DataRow row in dt.Rows)
{
Console.WriteLine("{0} {1} {2}", row[0], row[1], row[2]);
}
}
}
到目前为止一切顺利。 在从 Visual Studio 2005 或 2008 项目运行该代码时,一切都运行良好。 但在从 Visual Studio 2010 执行该代码时,则会出现错误,指出“未处理的异常:System.IO.FileLoadException:混合模式程序集是针对 ‘v2.0.50727’版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集”。对于从未听说过混合模式程序集的人来说,对该术语的解释是同时包含托管 Microsoft 中间语言和本机 x86 程序集指令的程序集。 这当然是一个坏消息,主要体现在两个方面:一方面是很明面的问题,即我们需要代码才能工作;另一方面是,对于混合模式程序集,在 ASP.NET 等其他环境中使用 SQLite 时会出现一些问题。
更多精彩
赞助商链接