未定义 Flutter sqflite openDatabase 方法
Flutter sqflite openDatabase method isn't defined
我是 flutter 开发的新手。我正在尝试使用 sqflite 在我的移动应用程序中创建一个 sqlite 数据库。
import 'package:mcqlanka/src/util/constants.dart';
import 'dart:io' as io;
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'dart:async';
import 'package:sqflite/sqlite_api.dart';
class DBHelper {
static Database _db;
Future<Database> get db async {
if (_db != null) {
return _db;
}
_db = await initDatabase();
return _db;
}
initDatabase() async {
io.Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, DB_NAME);
var db = await openDatabase(path, version: 1, onCreate: _onCreate);
return db;
}
_onCreate(Database db, int version) async {
await db.execute(
'CREATE TABLE user (uid TEXT PRIMARY KEY, email TEXT, image TEXT)');
}
}
但它总是说 openDatabase 未在 class 中定义。我正在使用 sqflite:^1.1.3。我也尝试过以前的版本。但我得到了同样的错误。
找到答案了。我导入了 import package:sqflite/sqlite_api.dart' 而不是 package:sqflite/sqflite.dart
现在它工作正常
您需要导入 import 'package:sqflite/sqflite.dart';
我是 flutter 开发的新手。我正在尝试使用 sqflite 在我的移动应用程序中创建一个 sqlite 数据库。
import 'package:mcqlanka/src/util/constants.dart';
import 'dart:io' as io;
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'dart:async';
import 'package:sqflite/sqlite_api.dart';
class DBHelper {
static Database _db;
Future<Database> get db async {
if (_db != null) {
return _db;
}
_db = await initDatabase();
return _db;
}
initDatabase() async {
io.Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, DB_NAME);
var db = await openDatabase(path, version: 1, onCreate: _onCreate);
return db;
}
_onCreate(Database db, int version) async {
await db.execute(
'CREATE TABLE user (uid TEXT PRIMARY KEY, email TEXT, image TEXT)');
}
}
但它总是说 openDatabase 未在 class 中定义。我正在使用 sqflite:^1.1.3。我也尝试过以前的版本。但我得到了同样的错误。
找到答案了。我导入了 import package:sqflite/sqlite_api.dart' 而不是 package:sqflite/sqflite.dart 现在它工作正常
您需要导入 import 'package:sqflite/sqflite.dart';