dart 如何使SUM函数返回一个整数而不是一个字符串在SQLITE(Sqflite)?

6rvt4ljy  于 2023-11-14  发布在  SQLite
关注(0)|答案(3)|浏览(145)

一切正常,除了我的Sum函数返回一个奇怪的字符串,而不仅仅是一个数字。
这里的函数从Database中的列中获取total:

Future getTotal () async {
var dbClient = await db;
var result = await dbClient.rawQuery(
    "SELECT SUM(columnName) FROM tableName");
     return result.toString();
    }

字符串
getTotal()返回:"[{SUM(columnName): 220}]"
我希望它只返回这个:220
我如何才能做到这一点?

ygya80vv

ygya80vv1#

因为rawQuery()返回List<Map>,所以必须使用

Future getTotal() async {
  var dbClient = await db;
  var result = await dbClient.rawQuery("SELECT SUM(columnName) FROM $tableScorer");
  int value = result[0]["SUM(columnName)"]; // value = 220
  return result.toString();
}

字符串

a1o7rhls

a1o7rhls2#

double _total;
  void _calcTotal() async {
    var total =
        (await db.getTotal())[0][sum(columname)];
    print(total);
    setState(() {
      _total = total;
    });
  }

字符串
我添加这个方法是为了在文本窗口小部件中调用时获得总数

tpgth1q7

tpgth1q73#

接受的答案实际上帮助我,但这是我从我的查询得到的总数。

Future<int> getTotal(String moduleSlug) async{
   var dbClient = await db;
   var queryResult = await dbClient.rawQuery("SELECT SUM(prix_total)  as total from panier where module_slug = ?",[moduleSlug]);
   int total = int.parse(queryResult[0]['total'].toString());
   return total;
  }

字符串
该函数只是将total返回为int。希望它能有所帮助

相关问题