如何从c#连接到SQLite数据库文件?
我正尝试从c#应用程序连接到sqllite db。我从来没有使用过SQLLite。如何从c#连接到SQLite数据库文件?
var connectionString = @"data source='C:\TestData\StressData.s3db'";
connection = new SQLiteConnection(connectionString);
connection.Open();
当我试图打开我得到下面的异常连接:
System.NotSupportedException: The given path's format is not supported.
at System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath)
at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath)
我在做什么错?
谢谢..
尼克
更新:
我改变了 '数据源' 到 '数据源' 的建议给我。现在我收到一个新的错误:
更改后,我得到一个新的错误:System.ArgumentException:数据源不能为空。使用:内存:打开内存数据库在System.Data.SQLite.SQLiteConnection.Open()
有更多建议吗?
明白了..
"data source=c:\TestData\StressData.s3db; Version=3;"
看起来像 '版本' 属性是不可选的。有趣的是,.NET提供程序不会在设计器属性窗口中显示此内容。
使用SQLiteConnectionStringBuilder对象来构建连接字符串(而不是将其硬编码为字符串)可以消除大多数像这样的问题(模糊参数姓名,拼写错误)。说到Version属性,至少我的SQLite并不需要它。 – 2013-04-22 10:09:57
据this,data source
应DataSource
Doh!我想你是对的。更改后,我得到一个新的错误: System.ArgumentException:数据源不能为空。使用:内存:打开内存数据库 在System.Data.SQLite.SQLiteConnection.Open() 我必须提供一个参数? – Nick 2010-06-14 16:59:34
@Nick,我从来没有使用过这个,但是从文档看来,这个参数应该是'new SQLiteConnection(“DataSource = C:\ TestData \ StressData.s3db”)'。我不知道为什么它不工作:\ – 2010-06-14 17:05:54
实际上它看起来应该是'数据源' – Nick 2010-06-14 17:13:28
尝试删除连接字符串中的撇号DataSource参数:'@“DataSource = c:\ TestData \ StressData.s3db”'。 – 2010-06-14 17:07:39