-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

乍一看,您似乎缺少“信息”上的文件扩展名以及任何可能适合您的实施的必要连接字符串选项(再次,请参阅 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 回答