我需要帮助,我正在开发一个应用程序使用SQLite,这里是我的场景,我想使最喜爱的功能使用SQLLITE,如果该值确实存在,然后填补红色的心脏图标,否则删除心脏图标的颜色。
这是我的密码
//this table where i am fetching all data
//fetch all verse
static Future<List<Map<String, dynamic>>> fetchallverse(String database, int booknumber,int chapternumber) async {
final db = await Dbhelper().db;
return db!.rawQuery('SELECT DISTINCT id,v,t from ${database} WHERE b=${booknumber} AND c=${chapternumber}');
}
//this feature used add favourite
//add favourite
static favourite(var bookname,var chapternumber,var versenumber,var verse,var bookid) async {
final db = await Dbhelper().db;
// db!.rawInsert('INSERT INTO favourite(bookname, chapternumber,versenumber,verse,bookid) VALUES("${bookname},${chapternumber},${versenumber},${verse},${bookid}")');
db!.rawInsert('INSERT INTO favourite(bookname, chapternumber,versenumber,verse,bookid) VALUES("${bookname}",${chapternumber},${versenumber},"${verse}",$bookid)');
print(db);
}
//now fethcing data from favourite successfully
//data coming from favourite
static Future<List<Map<String, dynamic>>> getfavourite() async {
final db = await Dbhelper().db;
return db!.rawQuery('SELECT * from favourite');
}
//here is my listview favourite button make code shorter for easier understing
收藏按钮(
iconDisabledColor: Colors.grey,
iconSize:30,
valueChanged: (_isFavorite) {
Dbhelper.favourite(widget.bookname,widget.chapternumber,allverse[index]['v'],allverse[index]['t'],allverse[index]['id']);
},
),
2条答案
按热度按时间rqenqsqc1#
要检查SQLite数据库中是否存在某个值,可以使用带有WHERE子句的SELECT语句来检查表中是否存在所需的值。如果查询返回值,则表示表中存在该值,可以用红色填充心形图标。如果没有返回值,则表示表中不存在该值。你可以去掉心形图标的颜色。
下面是一个如何检查“收藏夹”表中是否存在某个值的示例:
然后,可以使用所需的值调用此方法,并检查返回列表的长度以查看该值是否存在于表中。
注意:您应该使用参数化查询而不是字符串串联,以避免代码中的SQL注入漏洞。
1l5u6lss2#
我很抱歉这不是答案。但由于声誉不高,我不能评论的问题。我想告诉你,你必须添加更多的细节,这与它很难找到解决方案,你可以在这里添加源代码或评论一个github回购链接。这将是一个更容易从这拿出一个很好的解决方案。