使用 vb.net 打开 sqlite“临时”数据库的确切语法是啥
Posted
技术标签:
【中文标题】使用 vb.net 打开 sqlite“临时”数据库的确切语法是啥【英文标题】:what is the exact sytax to open sqlite "Temporary" database using vb.net使用 vb.net 打开 sqlite“临时”数据库的确切语法是什么 【发布时间】:2016-02-19 07:38:47 【问题描述】:下面会在内存中创建db
Dim cn As SQLiteConnection = New SQLiteConnection("Data Source=:memory:")
下面将在 C:\Temp\ 中创建名为 abc 的磁盘文件 db
Dim cn As SQLiteConnection = New SQLiteConnection("Data Source=C:\Temp\abc")
或 下面将在默认位置创建名为 abc 的磁盘文件 db ..\SqliteProject\bin\Debug
Dim cn As SQLiteConnection = New SQLiteConnection("Data Source=abc")
但是..如何创建临时数据库?? documentation Link1 Link2 Link3 Link4 说“使用空文件名创建临时数据库”。但没有人说出确切的代码。 我尝试了各种组合
Dim cn As SQLiteConnection = New SQLiteConnection("")
Dim cn As SQLiteConnection = New SQLiteConnection("Data Source=")
Dim cn As SQLiteConnection = New SQLiteConnection("Data Source=C:\Temp\")
但都抛出异常/错误
【问题讨论】:
文件名必须为空。确切的错误是什么? 对于前两行代码,它说...“数据源不能为空。使用 :memory: 打开内存数据库”对于第三行,它说...“无效的 ConnectionString格式,无法解析:找到不平衡的转义或引号字符" 好吧,“数据源不能为空”是错误的。除非有其他机制来指定临时数据库,否则这似乎是您使用的任何 SQLite 驱动程序中的错误。 我从这里下载了“sqlite-netFx451-setup-bundle-x64-2013-1.0.99.0.exe”...system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki(它仍然在网页上)在执行设置后我引用了这个dll。 ..\bin\Debug\System.Data.SQLite_DLL\2013\bin\System.Data.SQLite.dll。它的版本是 1.0.99.0,运行时版本是 v4.0.30319 【参考方案1】:System.Data.SQLite 使用以下代码检查数据库名称:
fileName = FindKey(opts, "Data Source", DefaultDataSource);
if (String.IsNullOrEmpty(fileName))
fileName = FindKey(opts, "Uri", DefaultUri);
if (String.IsNullOrEmpty(fileName))
fileName = FindKey(opts, "FullUri", DefaultFullUri);
if (String.IsNullOrEmpty(fileName))
throw new ArgumentException(UnsafeNativeMethods.StringFormat(CultureInfo.CurrentCulture, "Data Source cannot be empty. Use 0 to open an in-memory database", MemoryFileName));
因此无法指定空名称。
但是,可以使用空路径指定 URI 文件名:
New SQLiteConnection("FullUri=file:")
【讨论】:
“CL”感谢您的解决方案,它真的帮助了我。但我的实际问题就在那里......事实上。我把它作为一个问题发布。 ***.com/questions/35551758/…以上是关于使用 vb.net 打开 sqlite“临时”数据库的确切语法是啥的主要内容,如果未能解决你的问题,请参考以下文章