HseyinAkkaya
Hocam tekrardan rahatsız ediyorum kusura bakmayın ama çıldırmak üzereyim. Hata olmaması lazım hata veriyo buralar:
Bu product class
class Product{
Product({this.id,this.name,this.description,this.unitPrice});
int id;
String name;
String description;
double unitPrice;
Map<String,dynamic> toMap(){
var map= <String,dynamic>{
DbHelper.COLUMN_NAME : name,
DbHelper.COLUMN_DESCRIPTION : description,
DbHelper.COLUMN_UNITPRICE : unitPrice};
if(id!=null) {
map[DbHelper.COLUMN_ID] = id;
}
return map;
}
Product.fromMap(Map<String, dynamic> map) {
id = map[DbHelper.COLUMN_ID];
name = map[DbHelper.COLUMN_NAME];
description = map[DbHelper.COLUMN_DESCRIPTION];
unitPrice = map[DbHelper.COLUMN_UNITPRICE];
}
}
Bu db helper
class DbHelper{
static const String TABLE_PRODUCT = "products";
static const String COLUMN_ID = "id";
static const String COLUMN_NAME = "name";
static const String COLUMN_DESCRIPTION = "description";
static const String COLUMN_UNITPRICE = "unitPrice";
DbHelper._();
static final DbHelper dbHelper = DbHelper._();
Database _db;
Future<Database> get database async{
if(_db == null){
_db = await initializeDb();
return _db;
}
return _db;
}
Future<Database> initializeDb() async{
String dbPath = join(await getDatabasesPath(),'etrade.db');
var eTradeDb = await openDatabase(dbPath,version: 1,onCreate: createDb);
return eTradeDb;
}
void createDb(Database db, int version) async{
await db.execute('CREATE TABLE $TABLE_PRODUCT($COLUMN_ID INTEGER PRIMARY KEY AUTOINCREMENT,$COLUMN_NAME TEXT,$COLUMN_DESCRIPTION TEXT,$COLUMN_UNITPRICE INTEGER)');
}
Future<List<Product>> getProducts() async{
final db = await database;
var products = await db.query(TABLE_PRODUCT,columns: [COLUMN_ID,COLUMN_NAME,COLUMN_DESCRIPTION,COLUMN_UNITPRICE]);
List<Product> productList= List<Product>();
products.forEach((currentProduct){
Product product = Product.fromMap(currentProduct);
productList.add(product);
});
return productList;
}
Future<int> insert(Product product) async{
Database db = await database;
var result = await db.insert("products", product.toMap());
return result;
}
Future<int> delete(int id) async{
Database db = await database;
var result = await db.rawDelete("DELETE FROM products WHERE id = $id");
return result;
}
Future<int> update(Product product) async {
final db = await database;
return await db.update(
TABLE_PRODUCT,
product.toMap(),
where: "$COLUMN_ID = ?",
whereArgs: [product.id],
);
}
}
Son zamanlarda flutter çıldırdı artık yeşil tik alamıyorum bile kod yazarken hep bir yerlerde uyarı veriyo. Her neyse hem internetten baktığım hemde sizin koddan baktığım kadarıyla böyle bir db_helper ve product class oluşturdum. Ama product.fromMap() kısmı tamamen hata veriyor. db_helper kısmında ise update metodunda whereArgs: [product.id] hata veriyor. Netten de baktım benim yaptığımın aynısı ama benimki hatalı sorun nedir acaba bir bilginiz var mı ?