【发布时间】:2019-12-30 03:04:53
【问题描述】:
我正在尝试构建一个 Android Xamarin 应用程序。我创建了一个名为 regjistri.sqlite 的 SQLite 数据库。数据库没有损坏,我可以通过 PC 上的 SQLite 浏览器打开它。我已将此数据库保存到我的 android Documents 文件夹中。 我正在尝试通过 sqlite-net-pcl 库访问它,如下所示。
string dbPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), "regjistri.sqlite");
var db = new SQLiteConnection(dbPath);
var data = db.Query<object>("SELECT COUNT(*) FROM tblLidhja ");
我还拥有应用程序的读写权限。当我通过 USB 电缆调试它时,它给了我 "SQLite.SQLiteException: no such table: tblLidhja" 异常。有人可以帮我看看可能出了什么问题,或者我应该改变什么来读取一些数据?
【问题讨论】:
-
你的意思不是 var data = db.Query 它应该是 var data = db.Query
("SELECT COUNT() FROM tblLidhja"); ? -
您的实际
tblLidhja类代码是什么?您的代码中的TableCreate调用在哪里? -
如果路径不存在,SQLite 会为你创建一个空数据库——我怀疑这是发生的——你的路径不正确。使用 File.Exists 进行验证
-
您必须在打开与 DB 的连接之后以及从中查询任何数据之前调用
db.CreateTable<tblLidhja>()(这就是异常告诉您的 - 您的 DB 中没有这样的表)。你可以在 sqlite-net repo 页面找到一个例子:github.com/praeclarum/sqlite-net
标签: sqlite xamarin xamarin.android sqlite-net-pcl