前言
WPF框架已经搭建,设想在WPF中使用数据库来存储想要存储的信息。在存储的过程中,出现一些问题。现对这些问题以及解决办法进行记录,防止后续再次出现同类型的问题!
SQLite的使用问题
在创建好SQLite对应的数据库后,我在C#中进行了数据库连接。
定义了一个地址输入:this.connectionString = "Data Source=" + dbPath;
我们设定了一个字符串connectionString,把它定义为获取的数据库的地址,然后通过读取的地址位置将数据库进行连接。
using (SQLiteConnection connection = new SQLiteConnection(connectionString)){}
通过代码直接读取数据的地址,这里的connection就可以看出连接的状态是否成功。
问题1
System.Data.SQLite.SQLiteException:“SQL logic error or missing database no such table: DataInfo_tab”
在进行连接后,出现这个问题,在查很多地方后,发现我获取的数据库的.db文件位置不对,读不到对应的数据库。修改好表格位置后,这个问题就没有解决了。
在程序中我除了使用上面写的读取位置,还使用了AppDomain.CurrentDomain.BaseDirectory + "\\DataInfo\\DataInfos.db",也就是在当前位置的情况下读取。这个时候发现没有读取到数据库,是不对的。我单独将数据库的位置放置下项目的debug下,把数据库位置匹配到合适的位置,就连接成功了!
问题2
System.InvalidOperationException:“对象的当前状态使该操作无效。”
在查询了一下数据库的状态,发现数据库的状态state显示数据库处于closed状态。在确认我已经连接数据库的情况下,说明我的代码是没有打开数据库。然后我添加了一句
connection.Open();,报错解决。在图上是为了展示报错的情况,所以将这句话屏蔽了。但其实这个函数已经使用了很多次,但是之前一直不需要读取的时候打开,可能之前的程序在使用前的什么地方就已经打开了。所以后续在使用的过程一定要注意数据库的状态是否为打开状态!
总结
本文在SQLite表建立的前提下,对数据库进行连接,在使用过程中暴露的问题进行解决,以便后续在使用过程中出现同类型的问题!