错误类型“String”不是类型转换flift sqflite中类型“num”的子类型

错误类型“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

我使用以下代码在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 $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);
}