错误类型“String”不是类型转换flift sqflite中类型“num”的子类型
我使用以下代码在sqflite数据库中进行搜索错误类型“String”不是类型转换flift sqflite中类型“num”的子类型,string,flutter,dart,sqflite,String,Flutter,Dart,Sqflite,我使用以下代码在sqflite数据库中进行搜索 Future<Albums> getAlbumSearch([String search]) async { var dbClient = await db; // specify the column names you want in the result set List<Map> maps = await dbClient.rawQuery("SELECT * FROM $T
Future<Albums> getAlbumSearch([String search]) async {
var dbClient = await db;
// specify the column names you want in the result set
List<Map> maps =
await dbClient.rawQuery("SELECT * FROM $TABLE WHERE $TITLE LIKE '%${search}%' ");
Albums allAlbums = Albums();
List<Album> albums = [];
if (maps.length > 0) {
for (int i = 0; i < maps.length; i++) {
albums.add(Album.fromJson(maps[i]));
}
}
allAlbums.albums = albums;
return allAlbums;
}
但它在应用程序中给了我这个错误:错误类型“String”不是类型转换中类型“num”的子类型
我怎样才能解决这个问题
我的相册和相册课
class Album {
Album();
num albumId;
num id;
String title;
String url;
String thumbnailUrl;
factory Album.fromJson(Map<String,dynamic> json) => _$AlbumFromJson(json);
Map<String, dynamic> toJson() => _$AlbumToJson(this);
}
你的专辑是什么样子的?看起来数据类型不匹配。@Pro post edited。请参见此处传递给getAlbumSearch的参数是什么?它可能是num而不是String吗?我不知道答案,但我认为这段代码可能容易受到SQL注入的攻击。如果它在用户自己的机器上运行,影响可能不会那么严重。如果它在共享后端服务器上运行,影响可能会很严重,但值得修复。您可以通过输入一个包含类似test的引号的搜索词来测试它,它很可能会抛出。@DannyTuppeny它将在用户端
class Albums {
Albums();
List<Album> albums;
factory Albums.fromJson(Map<String,dynamic> json) => _$AlbumsFromJson(json);
Map<String, dynamic> toJson() => _$AlbumsToJson(this);
}