내 개발 컴퓨터가 아닌 다른 컴퓨터에서 프로젝트를 테스트 할 때 가장 이상한 동작이 발생합니다. 모든 것이 개발 컴퓨터에서 잘 작동하지만 프로그램을 배포 할 때 "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"메시지가 표시되고 예외가 발생합니다. "step 4.61"이 표시되지 않으므로 오류가 라인 if (query.Any())
에있는 것 같습니다. 기저에있는 테이블이 비어 있기 때문에 기이합니다. 결과가 없습니다. 누구든지 여기에 문제가 될 수있는 아이디어가 있습니까? 나는 LinqConnect DLL 파일을 exe뿐만 아니라 sqlite3.dll과 함께 배치하여 문제가되어서는 안된다.