11
private void SetConnection()
{
     string a = string.Format(@"Data Source={0};Version=3;New=False;Compress=True;", "~/lodeDb.db");
     sql_con = new SQLiteConnection(a);
}

private void ExecuteQuery(string txtQuery)
{
     SetConnection();
     sql_con.Open();
     sql_cmd = sql_con.CreateCommand();
     sql_cmd.CommandText = txtQuery;
     sql_cmd.ExecuteNonQuery();
     sql_con.Close();
}

sql_cmd.ExecuteNonQuery を実行すると、Sqleexception は「データベース ファイルを開けません」です。私のオンライン ホスティングの "lodeDb.db" ファイルは、データ ソースが間違っていると思います。オンライン ホスティングに db ファイルがあるかどうか教えてください。接続用のデータソースの設定方法 ありがとうございました 注: アクセス許可ファイルはここでは問題ありません

4

5 に答える 5

42

ネットワーク ドライブ (パスは "\\myServer\myDbFile..." で始まります) にあるデータベースを開こうとしたときに同じ例外が発生し、接続コンストラクターtrueparseViaFrameworkパラメーターに入れることで解決しました。

sql_con = new SQLiteConnection(a, true);
于 2014-03-11T14:09:04.007 に答える
5

これは接続文字列の問題です。

SQL Lite 接続文字列の形式

基本 :

Data Source=filename;Version=3;

UTF16 の使用:

Data Source=filename;Version=3;UseUTF16Encoding=True;

パスワード付き:

Data Source=filename;Version=3;Password=myPassword;

3.3x より前のデータベース形式を使用する場合:

Data Source=filename;Version=3;Legacy Format=True;

接続プーリングあり:

Data Source=filename;Version=3;Pooling=False;Max Pool Size=100;

読み取り専用接続:

Data Source=filename;Version=3;Read Only=True;

EDIT 1:
リモートデータベースへの接続が異なります。以下を確認する必要があります。

  1. ファイアウォール ポートの許容範囲。
  2. 会社/ホスト提供データベースはリモート接続を許可しています。
于 2012-06-04T02:16:37.020 に答える
5

「Journal Mode=Off;」を追加すると、私の問題は解決します。接続文字列で

ジャーナル ファイルを無効にする これは、ロールバック ジャーナルを完全に無効にします。

データ ソース=c:\mydb.db;バージョン=3;ジャーナル モード=オフ;

于 2013-05-11T13:57:10.240 に答える