首页 > 解决方案 > 在flutter sqlite数据库中返回一个字符串值

问题描述

我想从数据库中获取特定 deviceId 的用户名字符串值,但我收到此错误

UserName===Instance of 'Future<List<Map<String, dynamic>>>

我可以在表中成功插入数据,只有返回值的问题。

这是我的代码:

声明数据库和列:

static final _databaseName = "MyDatabase.db";
  static final _databaseVersion = 1;

  static final table = 'my_table';

  static final columnId = '_id';
  static final columnName = 'name';
  static final columnPassword = 'password';
  static final columnDeviceID = 'deviceID';

///....
////...

Future _onCreate(Database db, int version) async {
    await db.execute('''
          CREATE TABLE $table (
            $columnId INTEGER PRIMARY KEY,
            $columnName STRING NOT NULL,
            $columnPassword STRING NOT NULL,
            $columnDeviceID STRING NOT NULL UNIQUE
          )
          ''');
  }

获取名称方法

Future<String> getName(String deviceid) async{
    Database db = await instance.database;
   String name= await columnName;
  db.rawQuery('SELECT $name FROM $table WHERE $columnDeviceID = $deviceid');
   return name;
  }

以下是如何在应用程序中使用getName方法来获取值:

String user_name = await dbHelper.getName(deviceId);

标签: sqliteflutterselect

解决方案


推荐阅读