我想从mono访问sqlite数据库:该数据库存储在文件“ languages.sqlite”中,并包含表“ spanish-german”。
然后测试此连接-使用IDE工具查询数据库。
从“西班牙德语”中选择*
“ hablar |说话”
“ hacer |做,做”
该表有两列,一列带有西班牙语单词,一列带有德语翻译
现在,我需要在代码中连接到数据库。这应该很简单,但是我无法使其正常工作。这是我的代码:
string connectionString = "Data Source=languages.sqlite";
DataContext dataContext = new DataContext (connectionString);
Table<Spanish_German> words = dataContext.GetTable<Spanish_German> ();
var query =from word in words select word;
foreach (var word in query)
Console.WriteLine (word.Spanish);
这样编译就可以了,但是在运行时,代码会在最终的打印语句中停止。
System.Data.SqlClient.SqlConnection.Open()“文件名未知”
显然文件名不正确。该数据库存储在文件夹数据库中。我尝试了以下连接字符串:
然后发现MS具有这些字符串的自定义格式,“数据源”应称为“ Addr”。所以现在我正在使用-“ Addr = languages.sqlite”
并得到了不同的例外:
Mono.Data.Tds.TdsInternalException已引发。服务器关闭了连接。
那是什么 ?我该如何解决?
更新:
我将数据库的生成选项更改为“内容”,并将其复制到输出目录。然后我添加了“ Version = 3;” 到connectionString。最后,我将dataContext更改为使用sqLite。
通过这三个更改,该程序都可以运行,如果其中之一被忽略,则不会。
非常感谢你。如果你们中的一个人根据他的评论创建一个答案,我会接受。
我将数据库的生成选项更改为“内容”,并将其复制到输出目录。然后我添加了“ Version = 3;” 到connectionString。最后,我将dataContext更改为使用sqLite。
现在程序运行正常。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句