Sqlite + c#:无法打开数据库文件

Fut*_*man 8 c# sqlite connection

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();
}
Run Code Online (Sandbox Code Playgroud)

当我运行sql_cmd.ExecuteNonQuery时,Sqlexception是"无法打开数据库文件".我的在线托管上的"lodeDb.db"文件,我认为数据源是错误的.可以告诉我在线托管中是否有db文件.如何设置连接的数据通过谢谢注意:权限文件在这里没有问题

gaj*_*357 33

尝试打开网络驱动器上的数据库(路径以"\\ myServer\myDbFile ..."开头)时,我遇到了同样的异常,我通过在连接构造函数中添加参数true来解决它parseViaFramework.

sql_con = new SQLiteConnection(a, true);
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说非常有效(在Mac上使用Parallels默认网络映射在幕后). (2认同)

Ahm*_*eim 6

这是一个连接字符串问题,

SQL Lite连接字符串格式

基础:

Data Source=filename;Version=3;
Run Code Online (Sandbox Code Playgroud)

使用UTF16:

Data Source=filename;Version=3;UseUTF16Encoding=True;
Run Code Online (Sandbox Code Playgroud)

使用密码:

Data Source=filename;Version=3;Password=myPassword;
Run Code Online (Sandbox Code Playgroud)

使用pre 3.3x数据库格式:

Data Source=filename;Version=3;Legacy Format=True;
Run Code Online (Sandbox Code Playgroud)

使用连接池:

Data Source=filename;Version=3;Pooling=False;Max Pool Size=100;
Run Code Online (Sandbox Code Playgroud)

只读连接:

Data Source=filename;Version=3;Read Only=True;
Run Code Online (Sandbox Code Playgroud)

编辑1:
连接到远程数据库不同,您必须检查以下内容.

  1. 防火墙端口允许.
  2. 公司/主机提供数据库允许远程连接.

  • 抱歉,当我在本地计算机上运行应用程序时,该应用程序运行良好。但我将应用程序部署到服务器 ---> 错误。你能告诉我如何连接到数据库吗 (2认同)

小智 5

添加“Journal Mode=Off;”后我的问题就解决了 在连接字符串中

禁用日志文件 此选项会完全禁用回滚日志。

数据源=c:\mydb.db;版本=3;日志模式=关闭;