-2

私のプロジェクトには SQLite.Interop.066.dll への参照があり、SQLite データベースへの正しいパスを入力した後でも、アプリケーションはそれを見つけることができません。ASQLiteException was unhandledが返されます。

        SQLiteConnection conn = new SQLiteConnection();
        //SQLiteDataAdapter da;
        SQLiteCommandBuilder cb;
        DataTable dt=new DataTable();
        int row = 0;

        conn.ConnectionString = "Data Source=C:\\database\\info.db; Version=3";
        conn.Open();

        DataRow dr = dt.NewRow();
        dr["name"] = txtName.Text;
        dr["address"] = txtAddress.Text;
        dr["phone"] = txtPhone.Text;
        dr["position"] = txtPosition.Text;
        dt.Rows.Add(dr);
        da.Update(dt);

        row = dt.Rows.Count - 1;
        txtName.Text = dt.Rows[row]["name"].ToString();
        txtAddress.Text = dt.Rows[row]["address"].ToString();
        txtPhone.Text = dt.Rows[row]["phone"].ToString();
        txtPosition.Text = dt.Rows[row]["position"].ToString();

        da.Fill(dt);

        cb = new SQLiteCommandBuilder(da);

        conn.Dispose();
        conn.Close();

例外は次の行で発生します: conn.Open();
前のタイトルミスすみません…

4

2 に答える 2

1

ここで見つけることができるSQLite接続文字列の適切な形式を見てください:http: //www.connectionstrings.com/sqlite

一見すると、「info」のファイル拡張子と、実装に適している可能性のある必要な接続文字列オプションが欠落しているように見えます(ここでも、connectionstrings.comを参照してください)。

エラーは「インデックスが範囲外」の例外であるconn.Open()ため、データベースが見つからないかのように聞こえ、拡張機能を修正するだけでうまくいく可能性があります。

于 2011-11-26T02:06:21.613 に答える
0
conn.ConnectionString = "Data Source=C:\\database\\info.db; Version=3;"; 
于 2013-07-19T08:28:35.940 に答える