Tag: system.data.sqlite

在构造System.Data.SQLite.SQLiteConnection时,什么原因导致System.BadImageFormatException

我已经把代码分解成最小的声明: Dim cn As System.Data.SQLite.SQLiteConnection 从WinForm应用程序中调用代码时出现以下错误: System.BadImageFormatException:无法加载文件或程序集“System.Data.SQLite,版本= 1.0.65.0,文化=中性,PublicKeyToken = db937bc2d44ff139”或其依赖项之一。 试图加载格式不正确的程序。 文件名:'System.Data.SQLite,Version = 1.0.65.0,Culture = neutral,PublicKeyToken = db937bc2d44ff139' 然而,从MSunit testing调用相同的代码我没有得到错误,加上完整的代码集按预期工作。

什么是混合模式组装?

我正在查看System.Data.SQLite下载页面 ,它列出了.NET 4的混合模式程序集和一个常规(我假设)。 我将要使用这个库的项目都是.NET 4,它将被编译为x86。 我有两个问题: 什么是混合模式组装? Google返回了一系列令人困惑的答案,这些答案都没有什么意义。 一个答案指出,这是关于混合原生代码和托pipe代码,而其他人声称混合.Net版本。 我应该为我的情况下载哪个下载?

创buildSQLite数据库和表

在C#应用程序代码中,我想创build一个或多个SQLite数据库,然后与之交互。 什么是首选的方法来初始化一个新的SQLite数据库文件,并打开它的阅读和写作? 在创build数据库之后,我该如何执行DDL语句来创build表?

entity framework6与SQLite 3代码优先 – 不会创build表

使用NuGet的最新版本的EF6和SQLite。 我终于得到了app.config文件后,在Stackoverflow上的一些有用的职位。 现在的问题是,虽然数据库是没有创build表。 我的app.config: <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!– For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 –> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <entityFramework> <providers> <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" /> </providers> </entityFramework> <system.data> <DbProviderFactories> <remove invariant="System.Data.SQLite" /> <add name="SQLite Data Provider" invariant="System.Data.SQLite" […]

用C#在SQLite中添加参数

我只是学习SQLite,我不能让我的参数编译到正确的命令。 当我执行下面的代码: this.command.CommandText = "INSERT INTO [StringData] VALUE (?,?)"; this.data = new SQLiteParameter(); this.byteIndex = new SQLiteParameter(); this.command.Parameters.Add(this.data); this.command.Parameters.Add(this.byteIndex); this.data.Value = data.Data; this.byteIndex.Value = data.ByteIndex; this.command.ExecuteNonQuery(); 我得到一个SQLiteexception。 在检查CommandText时,我发现无论我在做什么都不正确地添加参数: INSERT INTO [StringData] VALUE (?,?) 任何想法我失踪? 谢谢

SQLite数据库locking的exception

我得到的数据库locking SQLite的exception只有一些查询。 下面是我的代码:当我执行任何select语句,它工作正常。 当我在Jobs Table上执行任何写入语句时,它也能正常工作。 这工作正常: ExecuteNonQuery("DELETE FROM Jobs WHERE id=1"); 但是,同样的方式,如果我正在执行查询Employees表,它是抛出一个exception, 数据库被locking 。 这抛出exception: ExecuteNonQuery("DELETE FROM Employees WHERE id=1"); 以下是我的function: public bool OpenConnection() { if (Con == null) { Con = new SQLiteConnection(ConnectionString); } if (Con.State == ConnectionState.Closed) { Con.Open(); //Cmd = new SQLiteCommand("PRAGMA FOREIGN_KEYS=ON", Con); //Cmd.ExecuteNonQuery(); //Cmd.Dispose(); //Cmd=null; return true; } if (IsConnectionBusy()) […]

SQLite插入非常慢?

我最近读了SQLite,并认为我会试一试。 当我插入一个logging时,它performance良好。 但是,当我插入一百个,需要五秒钟,而随着logging数量增加,时间也增加。 什么可能是错的? 我正在使用SQLite包装(system.data.SQlite) : dbcon = new SQLiteConnection(connectionString); dbcon.Open(); //—INSIDE LOOP SQLiteCommand sqlComm = new SQLiteCommand(sqlQuery, dbcon); nRowUpdatedCount = sqlComm.ExecuteNonQuery(); //—END LOOP dbcon.close();

System.Data.SQLiteclosures()不释放数据库文件

试图删除文件之前,我遇到了closures数据库的问题。 代码只是 myconnection.Close(); File.Delete(filename); 而且删除引发了一个exception,即该文件仍在使用中。 几分钟后,我在debugging器中重新尝试了Delete(),所以这不是时序问题。 我有事务代码,但它在Close()调用之前根本不运行。 所以我相当确定这不是一个公开交易。 打开和closures之间的sql命令只是select。 ProcMon显示我的程序和我的防病毒看数据库文件。 它不显示我的程序在close()之后释放db文件。 Visual Studio 2010,C#,System.Data.SQLite版本1.0.77.0,Win7 我看到一个两年前的bug,但是更新日志说这个bug是固定的。 还有什么我可以检查? 有没有办法获得任何打开的命令或交易清单? 新的工作代码: db.Close(); GC.Collect(); // yes, really release the db bool worked = false; int tries = 1; while ((tries < 4) && (!worked)) { try { Thread.Sleep(tries * 100); File.Delete(filename); worked = true; } catch (IOException e) // […]

在.NET 4.0项目中引用.NET 2.0混合模式程序集时需要什么“附加configuration”?

我有一个项目,我想要使用.NET 4.0的一些function,但是一个核心要求是我可以使用针对2.X编译的System.Data.SQLite框架。 我看到提到这是可能的,例如在这里接受的答案,但我不明白如何实际实现这一点。 当我只是尝试运行我的4.0项目,而引用2.X程序集时,我得到: 混合模式程序集是针对运行时版本“v2.0.50727”构build的,不能在没有附加configuration信息的情况下在4.0运行时加载。 什么“附加configuration”是必要的?