关于sqlite error no such table错误的解决办法

今天开始尝试为“星际2客户端切换器”添加Win7下的JumpList功能,如图:

图1

图2

这样可以在任务栏和开始菜单中快速启动相应的客户端,而不需要启动软件。

在测试过程中遇到一个错误,sqlite error no such table…,百思不得其解,一直以为是由于JumpList在未启动程序的情况下调用程序内的方法导致数据库没有加载的问题,但后来始终没有弄明白,一直在搜索关于JumpList调用的问题。后来干脆直接搜sqlite error no such table的错误原因,才发现问题所在。我的数据库调用使用的是相对地址:

SQLiteConnection conn = new SQLiteConnection("Data Source = settings.db;");

在直接打开软件是没有任何问题的,但是通过JumpList调用的话,我怀疑启动的位置不一样,所以导致找不到数据库,于是换成:

SQLiteConnection conn = new SQLiteConnection(@"Data Source =" + System.Windows.Forms.Application.StartupPath + "\\settings.db;");

问题搞定!

今后数据库文件还是用绝对位置比较妥当。

2012-9-25晚于宿舍
by HADB