为什么Sqlite不能在wp8中返回带有utf8值的结果集

时间:2014-02-28 10:35:52

标签: c# sqlite windows-phone-8

我一直在努力处理简单查询的结果,该查询在sqlite管理器中返回结果,但在wp8 app中没有。

我的观点非常简单:

CREATE VIEW "BookmarkDetail" AS   SELECT b.BookmarkID, b.ChapterID, b.AyaID, c.TName, c.SuraName SuraName, a.Aya FROM Bookmark b inner join Chapter c on c.ChapterID = b.ChapterID
inner join ArabicText a on a.AyaID = b.AyaID and a.ChapterID = b.ChapterID

这会在sqlite manager中返回结果

select * from BookmarkDetail

使用以下代码从wp8 app调用相同内容不会返回任何结果。

public List<BookmarkDetail> getBookmarkDetail()
{
    return dbConn.Table<BookmarkDetail>().ToList();
}

public List<BookmarkDetail> BookmarkDetail
{
   get 
      {return getBookmarkDetail();} //This returns zero record
}

经过一些搜索,我发现“SuraName和Aya”列是unicode(阿拉伯语)值。如果我从视图定义中删除这两列,则查询会在sqlite manager和wp8中返回结果。如果我添加这两列,查询会在sqlite manager中返回结果,但不会在wp8中返回。

我不明白为什么wp8无法返回此类查询的结果? 我是否需要更改视图中列的排序规则?如果是,我怎么能在sqlite中做到这一点?

1 个答案:

答案 0 :(得分:0)

最后我找到了答案。我在这里发送答案也许其他人可能在sqlite中面临这样的问题。

当我们创建一个包含主键和自动增量的表时,自动增量值存储在sqlite_sequence表中。如果使用任何数据库有效数据库工具打开.sqlite数据库文件,您将看到此表。

如果您的表具有unicode数据(列)且不在此列表中,则应添加。这解决了我的问题!!