我正在构建一个简单的应用程序,这需要在一个数据库中的两个表。为了创建表和数据库,我使用以下语法->
import 'package:sqflite/sqflite.dart' as sql;
import 'package:path/path.dart' as path;
import 'package:sqflite/sqlite_api.dart';
class DBHelper {
static Future<Database> database() async {
final dbPath = await sql.getDatabasesPath();
return sql.openDatabase(path.join(dbPath, 'users.db'),
onCreate: (db, version) {
return db.execute(
'CREATE TABLE user_profile(id TEXT PRIMARY KEY, name TEXT, address TEXT,mobileno TEXT,dob TEXT);CREATE TABLE user_transactions(id TEXT PRIMARY KEY, date TEXT, amount TEXT,cart TEXT)');
}, version: 1);
}当我执行一个将数据添加到表' user_transactions‘的方法时,它给我一个错误,如'E/SQLiteLog(24687):(1)没有这样的表:user_transactions’。获取数据和将数据添加到user_profile工作得非常好。我还在sqlite的db浏览器中执行了sql查询,没有发现任何错误。我还尝试卸载应用程序并安装again.Please帮助。
发布于 2021-11-03 12:17:18
我认为在SQLite中创建多个表的最佳解决方案是这样而不是您的:
class DBHelper {
Future<Database> database() async {
return openDatabase(
join(await getDatabasesPath(), 'users.db'),
onCreate: (db, version) async {
await db.execute(
"CREATE TABLE user_profile(id TEXT PRIMARY KEY, name TEXT, address TEXT,mobileno TEXT,dob TEXT)");
await db.execute(
"CREATE TABLE user_transactions(id TEXT PRIMARY KEY, date TEXT, amount TEXT,cart TEXT)");
return db;
},
version: 1,
);}https://stackoverflow.com/questions/69795674
复制相似问题