C# 连接SQLite的问题

 开发环境:.NET
开发语言:C#
情景:新建的智能设备项目,目标平台是WinCE。这里用到了SQLite 1.0.76.0版本组件,但是出现一个问题:在语句if (conn.State != ConnectionState.Open)出出现异常,异常提示为:MissingMethodException。猜想可能是这个属性有问题,于是干脆直接注释掉这个判断,直接运行conn.Open();可是这句还以一样的异常提示。难道真的是这个方法已经被取消了还是怎么了?我直接在监视窗口中输入conn.State,发现他是Closed值,然后直接输入ConnectionState.Open,没有值,提示说类型“System.Data.ConnectionState”同时存在于“System.Data.dll”和“System.Data.dll”中,那我就不明白了,是不是SQLite包含或引用了这个名称的组件并且和系统的这个组件不是同一个导致的问题呢?

答:网上搜到的解决方案是:

问题已经解决,解决方案网上也有,我再描述一遍吧,让看到本帖的朋友可以直接找到答案:
引用的dll用官网下的zip包里面的dll,不要用exe安装程序安装后的安装目录下的那个,不好说它有没有问题反正我是这样解决的:
直接在安装目录下(C:\Program Files\SQLite.NET\bin)把文件夹CompactFramework直接拷贝到我的设备中(WinCE环境),运行testce.exe报异常,然后登了几秒才自动结束程序;
然后我直接把下载下来的压缩包(SQLite-1.0.66.0-binaries.zip)解压(F:\Download\SQLite\SQLite-1.0.66.0-binaries)并把里面的bin文件夹下的CompactFramework文件夹整个拷贝到我的设备中,运行testce.exe正常,显示的文本中有创建数据库啊表之类的(不方便截图,反正能正常运行);
最后我把这个文件夹中的System.Data.SQLite.dll组件直接拷贝到我的程序目录覆盖原来那个(原来这个是由电脑上安装目录下添加的)中,运行,OK。
嘿嘿,解释不了原因,但是这个问题算是解决了。

 

我试过的方法是:

有两个文件SQLite.Interop.DLL和System.Data.SQLite.dll  。该项目下所有版本是1.0.74.0 换成1.0.66.0。而这两个文件在安装的D:\Program Files\SQLite.NET\bin\CompactFramework目录下有把SQLite.Interop.066.DLL中的“.066”去掉即可。记的要把项目下的所有都替换掉。这样问题就解决了~吐舌头

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C#连接SQLite数据库可以使用System.Data.SQLite库,这是一个SQLite3的ADO.NET数据提供程序。以下是连接SQLite数据库的示例代码: ```csharp using System.Data.SQLite; // 设置连接字符串,指定SQLite数据库文件的路径 string connectionString = @"Data Source=C:\mydatabase.db;Version=3;"; // 创建SQLite连接对象 SQLiteConnection connection = new SQLiteConnection(connectionString); // 打开数据库连接 connection.Open(); // 执行SQL语句 SQLiteCommand command = new SQLiteCommand("SELECT * FROM mytable", connection); SQLiteDataReader reader = command.ExecuteReader(); // 读取数据 while (reader.Read()) { string column1 = reader.GetString(0); int column2 = reader.GetInt32(1); // ... } // 关闭数据读取器和连接 reader.Close(); connection.Close(); ``` 在连接串中,Data Source指定SQLite数据库文件的路径,Version指定SQLite的版本号。创建SQLite连接对象后,通过执行SQL语句来操作数据库。使用SQLiteDataReader对象读取数据时,可以通过GetString、GetInt32等方法获取指定列的数据。最后,关闭SQLiteDataReader和连接对象。 ### 回答2: c是C语言的一种编程语言。C语言是一种高级的计算机编程语言,由贝尔实验室的Dennis Ritchie在20世纪70年代开发而来。C语言广泛应用于计算机科学和软件开发领域。 C语言被广泛使用是因为它具有简洁、灵活和高效的特点。它是一种结构化的编程语言,提供了丰富的数据类型和控制结构,使得程序员可以更好地组织和控制程序的流程。C语言还提供了丰富的操作符和库函数,使得编写复杂的算法和数据结构变得更加容易。 C语言还具有可移植性的特点,可以在不同的计算机平台上运行。C语言的程序可以通过简单的修改和重新编译就可以在不同的操作系统和硬件上运行,这使得C语言成为开发跨平台软件的理想选择。 C语言也被广泛应用于系统开发和底层编程。许多操作系统、编译器和数据库系统等底层软件都是使用C语言编写的。C语言的底层编程特性使得程序员可以直接访问和控制计算机的硬件资源,提高了程序的性能和效率。 总之,C语言是一种强大而灵活的编程语言,具有简洁、高效和可移植的特点。它在计算机科学和软件开发领域中得到广泛应用,是学习和掌握计算机编程的重要一步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值