我如何知道 flutter sqflite 中是否存在行?

Pri*_*mal 2 sql dart flutter sqflite

我必须知道特定行是存在的,其中uidColaaatagtable。但我不知道所以我只是使用try~catch块。

我想要做的是检查本地数据库,如果没有数据,则从 firestore 获取。

我在做什么就像下面

try {
  await db.rawQuery('SELECT * FROM tagTable WHERE uidCol="aaa"');
} catch(exception){
  await _fetchTagsFromFirestore().catchError((e){
    print('FATAL ERROR: ${e.toString()}');
    return FETCH_RESULT.FAILURE;
  });
}
Run Code Online (Sandbox Code Playgroud)

但我认为检查行是否存在不是正确的方法。我该如何妥善处理?

Sal*_*ma. 6

我假设您想检查数据库中是否存在符合指定条件的记录,如果确实存在则执行某些操作。

从数据库中获取结果并存储在查询结果中: var queryResult = await db.rawQuery('SELECT * FROM tagTable WHERE uidCol="aaa"');

检查结果是否为空:

 result.isNotEmpty ? //do something if the result is not empty here
 : []; //else return empty list
Run Code Online (Sandbox Code Playgroud)


小智 6

试试这个,它对我有用

var db= DatabaseHelper();

Future<int> getcount(id) async {
      var dbclient = await db;
      int  count = Sqflite.firstIntValue(
          await dbclient.rawQuery("SELECT COUNT(*) FROM $cartTable WHERE $columnid=$id"));
      return count;
      }
Run Code Online (Sandbox Code Playgroud)