【问题标题】:SQLite.net c# connection string errorSQLite.net c#连接字符串错误
【发布时间】:2016-09-24 13:16:23
【问题描述】:

这可能与尝试连接到服务器上的 URI 位置有关,因此我读到我需要 SQLiteConnection 中的“SQLiteConnection(..., true)”参数。谁能指出为什么这个方法或连接字符串是错误的?我尝试了几种变体...

oConnection = new System.Data.SQLite.SQLiteConnection("Data Source=" + sFileName + "; Version=3; foreign keys=true;", true);

sFileName 的格式为“\\aServer\projects\Database.xxxx”。

【问题讨论】:

  • sFIleName 应该是您的 db 文件的完整路径。 ("C:\DataBases\db.sqlite).
  • 是的。是否存在问题,因为它是服务器路径?
  • 您尝试在服务器内部还是远程连接?
  • 这是我公司的一台服务器,我有读写权限。我已经以编程方式创建了数据库,并且我之前有读取和写入数据库的测试用例。但是因为也许当外键选项被添加到字符串时(不确定),连接错误。
  • 你想打开 fk 吗?

标签: c# database sqlite connection uri


【解决方案1】:

外键约束默认是禁用的(为了向后兼容),因此必须为每个数据库连接单独启用。应用程序还可以使用 PRAGMA foreign_keys 语句来确定当前是否启用了外键。以下命令行会话演示了这一点:

sqlite> PRAGMA foreign_keys = ON;

  SQLiteConnection connection = new SQLiteConnection("Data Source=" + sFileName + "; Version=3;", true);
    connection.Open();
    SQLiteCommand mycommand = new SQLiteCommand(connection);
    mycommand.CommandText = "PRAGMA foreign_keys=ON";
    mycommand.ExecuteNonQuery();
   connection.Close();

【讨论】:

  • 我在几篇文章中读到这可以在连接字符串中完成,类​​似于我所展示的。是否可以在连接字符串中打开外键?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 2011-08-17
  • 2013-02-11
  • 1970-01-01
相关资源
最近更新 更多