技术, C#

关于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

您已成功订阅 HADB.ME
真棒!下一步,完成结账以便解锁 HADB.ME
欢迎回来!您已登录成功。
登录失败,请重试。
操作成功!您的账户已全面激活,现在您有所有内容的权限了。
错误!Stripe 结账失败。
成功!您的账单信息已更新。
错误!账单信息更新失败。