如何查询SQLite是否存在记录?

时间:2012-12-03 22:50:41

标签: c# linq sqlite windows-store-apps sqlite-net

在下面的注释掉的行中,PlatypusId为红色/无法识别,但它确实存在于相应的表格中。

在对queryResult,PlatypusId,其中和计数为红色/无法识别的多行跨越分配中。

    //var queryResult = await conn.Table<PlatypiRequested>().CountAsync().(x => x.PlatypusId.Equals(personId));
    var queryResult = from p in PlatypiRequested
                      where p.PlatypusId.Equals(platypusId)
                      select count;

IOW,当我添加这个:

    var conn = new SQLiteAsyncConnection(SQLitePath);
    var queryResult = await conn.Table<PlatypiRequested>().CountAsync().(x => x.

......在“x =&gt; x。”

之后没有提供任何可能性

查询我的SQLite表需要什么样的代码?

我正在使用SQLite-net包/扩展,但它的文档(什么文档?)并不过分冗长。通过查看SQLite.cs和SQLiteAsync.cs,我不是更明智的......

更新

好的,Harvey先生的回答评论让我看到了这个工作代码(Count()不可用,只有CountAsync()):

public async Task<bool> PlatypusAlreadyAdded(string platypusId)
{
    var conn = new SQLiteAsyncConnection(SQLitePath);
    var queryResult = await conn.Table<PlatypiRequested>().Where(x => x.PlatypusId == platypusId).CountAsync();
    return queryResult > 0;
}

正如Jackie DeShannon(与我无关,AFAIK)唱道,“现在世界需要的是一个”SQLite / SQLite-net for C#Windows Store apps“”book(或者至少是一篇冗长/内容丰富的博文,包含所有常见类型的SQL语句(CRUD)的示例。

1 个答案:

答案 0 :(得分:6)

我认为你真正想要的是

var queryResult = await conn.Table<PeopleRequested>()
                            .Where(x => x.someField == someValue)
                            .CountAsync();  

你的方式不会起作用,因为最后一个.运算符需要一个方法调用,而不是一个左括号或lambda表达式。