Create table 语句中的 SQLite 语法错误 - flutter/dart
Sqlite syntax error in Create table statement - flutter/dart
我不断收到此语法错误:E/SQLiteLog( 4514): (1) near "null": "CREATE TABLE expenses_table(id INTEGER PRIMARY KEY AUTOINCREMENT , 空文本 , 空文本)"
我对此很陌生,一直在使用在线示例将这段代码放在一起,但我似乎无法找到导致此问题的原因。
非常感谢任何帮助!
'''
import 'dart:io';
import 'package:path_provider/path_provider.dart';
import 'package:sqflite/sqflite.dart';
import 'dart:async';
import 'expense_list.dart';
class ExpensesDatabase {
static ExpensesDatabase _expensesDatabase;
static Database _database;
String expensesTable = 'expenses_table';
String id = 'id';
String name;
String amount;
ExpensesDatabase._createInstance();
factory ExpensesDatabase() {
if (_expensesDatabase == null) {
_expensesDatabase = ExpensesDatabase._createInstance();
}
return _expensesDatabase;
}
Future<Database> get database async {
if (_database == null) {
_database = await initializeDatabase();
}
return _database;
}
Future<Database> initializeDatabase() async {
Directory directory = await getApplicationDocumentsDirectory();
String path = directory.path + 'expenses.db';
var expensesDatabase =
await openDatabase(path, version: 1, onCreate: _createDb);
return expensesDatabase;
}
void _createDb(Database db, int newVersion) async {
await db.execute(
'CREATE TABLE $expensesTable($id INTEGER PRIMARY KEY AUTOINCREMENT,'
'$name TEXT,'
'$amount TEXT)');
}
'''
初始化你的名字和数量变量,它会变成空,因为字符串名称和数量还没有初始化。
String name = 'name';
String amount = 'amount';
我不断收到此语法错误:E/SQLiteLog( 4514): (1) near "null": "CREATE TABLE expenses_table(id INTEGER PRIMARY KEY AUTOINCREMENT , 空文本 , 空文本)"
我对此很陌生,一直在使用在线示例将这段代码放在一起,但我似乎无法找到导致此问题的原因。
非常感谢任何帮助!
'''
import 'dart:io';
import 'package:path_provider/path_provider.dart';
import 'package:sqflite/sqflite.dart';
import 'dart:async';
import 'expense_list.dart';
class ExpensesDatabase {
static ExpensesDatabase _expensesDatabase;
static Database _database;
String expensesTable = 'expenses_table';
String id = 'id';
String name;
String amount;
ExpensesDatabase._createInstance();
factory ExpensesDatabase() {
if (_expensesDatabase == null) {
_expensesDatabase = ExpensesDatabase._createInstance();
}
return _expensesDatabase;
}
Future<Database> get database async {
if (_database == null) {
_database = await initializeDatabase();
}
return _database;
}
Future<Database> initializeDatabase() async {
Directory directory = await getApplicationDocumentsDirectory();
String path = directory.path + 'expenses.db';
var expensesDatabase =
await openDatabase(path, version: 1, onCreate: _createDb);
return expensesDatabase;
}
void _createDb(Database db, int newVersion) async {
await db.execute(
'CREATE TABLE $expensesTable($id INTEGER PRIMARY KEY AUTOINCREMENT,'
'$name TEXT,'
'$amount TEXT)');
}
'''
初始化你的名字和数量变量,它会变成空,因为字符串名称和数量还没有初始化。
String name = 'name';
String amount = 'amount';