0
我在尝试在除开发计算机以外的计算机上测试项目时遇到了最奇怪的行为。在开发机器上一切正常,但是在部署程序时,我收到“打开DbConnection时出错”。与InnerException“无法打开数据库文件”。SQLite连接问题
基本上,我有一个空的数据库(只有架构)与EXE文件在同一个文件夹,就像我说的,一切工作正常的开发机器。我正在使用LinqConnect来查询SQLite数据库。这里是有错误的方法(也会接收到与访问数据库的任何方法相同的错误)。
private void LoadAccountsFromDatabase()
{
var accounts = new ObservableCollection<Account>();
var connectionString =
string.Format("Data Source='{0}';Version=3;Default Command Timeout=10000;", UserPreferences.DatabasePath);
AccountsGrid.CommitEdit();
AccountsGrid.SelectedItem = null;
MessageBox.Show(connectionString);
try
{
using (var db = new MainDataContext(connectionString))
{
MessageBox.Show("step 4.5");
var query = from a in db.Accounts
where a.Inactive == 0 || a.Inactive == null || ShowInactiveCheckBox.IsChecked == true
orderby a.AccountName, a.AccountNickname
select a;
try
{
MessageBox.Show("step 4.6");
if (query.Any())
{
MessageBox.Show("step 4.61");
foreach (var item in query)
{
MessageBox.Show("step 4.65");
accounts.Add(item);
}
}
MessageBox.Show("step 4.7");
AccountsGrid.ItemsSource = accounts;
MessageBox.Show("step 4.8");
}
catch (Exception e)
{
MessageBox.Show("accounts add " + e.Message);
if (e.InnerException != null)
{
MessageBox.Show(e.InnerException.Message);
}
}
}
}
catch (Exception e)
{
MessageBox.Show("load accounts " + e.Message);
}
}
我得到“步骤4.6”消息,然后是异常。我没有看到“步骤4.61”,所以看起来错误在线if (query.Any())
这是奇怪的,因为基础表是空的,所以没有结果。有没有人有任何想法可能是这里的问题?我确实有用exe部署的LinqConnect DLL文件以及sqlite3.dll,所以这不应该成为问题。