Sql 实例成员可以';不能使用静态访问进行访问
我希望你们都做得很好 我遇到了一个关于我的Flitter应用程序的问题:我一直在关注Youtube上的一个教程,但我无法让我的toMap函数在我的数据库类中工作。。。它总是返回错误“实例成员”toMap“无法使用静态访问访问”。有人知道这是怎么回事吗?我真的不明白。。。提前谢谢 下面是有问题的代码: poi.dartSql 实例成员可以';不能使用静态访问进行访问,sql,database,flutter,dart,sqflite,Sql,Database,Flutter,Dart,Sqflite,我希望你们都做得很好 我遇到了一个关于我的Flitter应用程序的问题:我一直在关注Youtube上的一个教程,但我无法让我的toMap函数在我的数据库类中工作。。。它总是返回错误“实例成员”toMap“无法使用静态访问访问”。有人知道这是怎么回事吗?我真的不明白。。。提前谢谢 下面是有问题的代码: poi.dart final String tablePOI = 'poi'; class POIFields { static final String id = '_id'; stat
final String tablePOI = 'poi';
class POIFields {
static final String id = '_id';
static final String email = 'email';
static final String village = 'village';
static final String lieu = 'lieu';
static final String type = 'type';
static final String etat = 'etat';
static final String notes = 'notes';
static final String latitude = 'latitude';
static final String longitude = 'longitude';
static final String imageUrl = 'image_url';
}
class POI {
final int id;
final String email;
final String village;
final String lieu;
final String type;
final String etat;
final String notes;
final String latitude;
final String longitude;
final String imageUrl;
POI({this.id, this.email, this.village, this.lieu, this.type, this.etat, this.notes, this.latitude, this.longitude, this.imageUrl});
Map<String, Object> toMap() => {
POIFields.id: id,
POIFields.email: email,
POIFields.village: village,
POIFields.lieu: lieu,
POIFields.type: type,
POIFields.etat: etat,
POIFields.notes: notes,
POIFields.latitude: latitude,
POIFields.longitude: longitude,
POIFields.imageUrl: imageUrl,
};
String toString() {
return 'POI{id: $id, email: $email, village: $village, lieu: $lieu, type: $type, etat: $etat, notes: $notes, latitude: $latitude, longitude: $longitude, image_url: $imageUrl}';
}
}
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
import 'package:stage_app_mpc/models/poi.dart';
class POIDatabase {
static final POIDatabase instance = POIDatabase._init();
static Database _database;
POIDatabase._init();
Future<Database> get database async {
if (_database != null) {
return _database;
}
else {
_database = await _initDB('poi.db');
return _database;
}
}
Future<Database> _initDB(String filePath) async {
final dbPath = await getDatabasesPath();
final path = join(dbPath, filePath);
return openDatabase(path, version: 1, onCreate: _createDB);
}
Future _createDB(Database db, int version) async {
await db.execute('CREATE TABLE poi (id INTEGER PRIMARY KEY, email TEXT, village TEXT, lieu TEXT, type TEXT, etat TEXT, notes TEXT, latitude TEXT, longitude TEXT, image_url TEXT)');
}
Future<POI> create(POI poi) async {
final db = await instance.database;
final id = await db.insert('poi', POI.toMap());
}
Future closeDB() async {
final db = await instance.database;
db.close();
}
}
最终字符串tablePOI='poi';
类字段{
静态最终字符串id=''u id';
静态最终字符串email='email';
静态最终字符串village='village';
静态最终字符串LIUE='LIUE';
静态最终字符串类型='type';
静态最终字符串etat='etat';
静态最终字符串注释='notes';
静态最终字符串纬度='纬度';
静态最终字符串经度='经度';
静态最终字符串imageUrl='image_url';
}
类POI{
最终int id;
最终字符串电子邮件;
最后串村;
最终字符串替换;
最终字符串类型;
最终字符串etat;
最后的弦乐;
最终弦纬度;
最终字符串经度;
最终字符串imageUrl;
POI({this.id,this.email,this.village,this.liue,this.type,this.etat,this.notes,this.latitude,this.longitude,this.imageUrl});
映射toMap()=>{
POIFields.id:id,
POIFields.email:email,
村庄:村庄,
利乌:利乌,
类型:类型,
POIFields.etat:etat,
注:注:,
纬度:纬度,
经度:经度,
POIFields.imageUrl:imageUrl,
};
字符串toString(){
返回'POI{id:$id,email:$email,village:$village,liue:$liue,type:$type,etat:$etat,notes:$notes,纬度:$latitude,经度:$longitude,image_url:$imageUrl}';
}
}
poi_db.dart
final String tablePOI = 'poi';
class POIFields {
static final String id = '_id';
static final String email = 'email';
static final String village = 'village';
static final String lieu = 'lieu';
static final String type = 'type';
static final String etat = 'etat';
static final String notes = 'notes';
static final String latitude = 'latitude';
static final String longitude = 'longitude';
static final String imageUrl = 'image_url';
}
class POI {
final int id;
final String email;
final String village;
final String lieu;
final String type;
final String etat;
final String notes;
final String latitude;
final String longitude;
final String imageUrl;
POI({this.id, this.email, this.village, this.lieu, this.type, this.etat, this.notes, this.latitude, this.longitude, this.imageUrl});
Map<String, Object> toMap() => {
POIFields.id: id,
POIFields.email: email,
POIFields.village: village,
POIFields.lieu: lieu,
POIFields.type: type,
POIFields.etat: etat,
POIFields.notes: notes,
POIFields.latitude: latitude,
POIFields.longitude: longitude,
POIFields.imageUrl: imageUrl,
};
String toString() {
return 'POI{id: $id, email: $email, village: $village, lieu: $lieu, type: $type, etat: $etat, notes: $notes, latitude: $latitude, longitude: $longitude, image_url: $imageUrl}';
}
}
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
import 'package:stage_app_mpc/models/poi.dart';
class POIDatabase {
static final POIDatabase instance = POIDatabase._init();
static Database _database;
POIDatabase._init();
Future<Database> get database async {
if (_database != null) {
return _database;
}
else {
_database = await _initDB('poi.db');
return _database;
}
}
Future<Database> _initDB(String filePath) async {
final dbPath = await getDatabasesPath();
final path = join(dbPath, filePath);
return openDatabase(path, version: 1, onCreate: _createDB);
}
Future _createDB(Database db, int version) async {
await db.execute('CREATE TABLE poi (id INTEGER PRIMARY KEY, email TEXT, village TEXT, lieu TEXT, type TEXT, etat TEXT, notes TEXT, latitude TEXT, longitude TEXT, image_url TEXT)');
}
Future<POI> create(POI poi) async {
final db = await instance.database;
final id = await db.insert('poi', POI.toMap());
}
Future closeDB() async {
final db = await instance.database;
db.close();
}
}
import'package:path/path.dart';
导入“包:sqflite/sqflite.dart”;
导入“包:阶段应用程序/模型/poi.dart”;
类数据库{
静态最终POIDatabase实例=POIDatabase._init();
静态数据库;
POI数据库。_init();
未来获取数据库异步{
如果(_database!=null){
返回数据库;
}
否则{
_database=await_initDB('poi.db');
返回数据库;
}
}
Future\u initDB(字符串文件路径)异步{
final dbPath=wait getDatabasesPath();
最终路径=连接(dbPath,filePath);
返回openDatabase(路径,版本:1,onCreate:_createDB);
}
Future _createDB(数据库数据库,int版本)异步{
wait db.execute('创建表poi(id整数主键、电子邮件文本、村庄文本、替代文本、键入文本、etat文本、注释文本、纬度文本、经度文本、图像\ url文本)');
}
未来创建(POI)异步{
final db=wait instance.database;
final id=wait db.insert('poi',poi.toMap());
}
Future closeDB()异步{
final db=wait instance.database;
db.close();
}
}
您引用的是类POI
,而不是参数POI
:
Future<POI> create(POI poi) async {
final db = await instance.database;
final id = await db.insert('poi', POI.toMap());
}
然后您的参数或字段可以是currentPoi
,activePoi
,poiData
,等等