Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro ao criar a tabela ou inserir o primeiro item

Olá, Meu código aparece a seguinte menagem de erro na tabela (aparentemente) quando executo.

An Observatory debugger and profiler on moto x4 is available at: http://127.0.0.1:59726/cmCJvQamejE=/
D/vndksupport(15875): Loading /vendor/lib64/hw/android.hardware.graphics.mapper@2.0-impl.so from current namespace instead of sphal namespace.
D/vndksupport(15875): Loading /vendor/lib64/hw/gralloc.sdm660.so from current namespace instead of sphal namespace.
The Flutter DevTools debugger and profiler on moto x4 is available at: http://127.0.0.1:9101?uri=http://127.0.0.1:59726/cmCJvQamejE=/
E/SQLiteLog(15875): (1) no such table: tbContatos
E/flutter (15875): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: DatabaseException(no such table: tbContatos (code 1 SQLITE_ERROR): , while compiling: INSERT INTO tbContatos (id, nome, numeroConta) 
VALUES (?, ?, ?)) sql 'INSERT INTO tbContatos (id, nome, numeroConta) VALUES (?, ?, ?)' args [0, Matheus, 2000]
E/flutter (15875): #0      wrapDatabaseException (package:sqflite/src/exception_impl.dart:11:7)
E/flutter (15875): <asynchronous suspension>
E/flutter (15875): #1      SqfliteDatabaseMixin.txnRawInsert.<anonymous closure> (package:sqflite_common/src/database_mixin.dart:392:14)
E/flutter (15875): <asynchronous suspension>
E/flutter (15875): #2      BasicLock.synchronized (package:synchronized/src/basic_lock.dart:33:16)
E/flutter (15875): <asynchronous suspension>
E/flutter (15875): #3      SqfliteDatabaseMixin.txnSynchronized (package:sqflite_common/src/database_mixin.dart:344:14)
E/flutter (15875): <asynchronous suspension>
E/flutter (15875):

Segue em baixo o código que criei.

import 'package:bytebank/modelos/contatos.dart';
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';

import '../modelos/contatos.dart';

Future<Database> criarBancoDeDados() {
  return getDatabasesPath().then((dbPath) {
    final String path = join(dbPath, 'bytebank.db');
    return openDatabase(path, onCreate: (db, version) {
      db.execute('CREATE TABLE tbContatos('
          'id INTEGER PRIMARY KEY, '
          'name TEXT,'
          'numeroConta INTEGER)');
    }, version: 1);
  });
}

Future<int> salvarContato(Contatos contatos) {
  return criarBancoDeDados().then((db) {
    final Map<String, dynamic> contatoMap = Map();
    contatoMap['id'] = contatos.id;
    contatoMap['nome'] = contatos.nome;
    contatoMap['numeroConta'] = contatos.numeroConta;
    return db.insert('tbContatos', contatoMap);
  });
}

Future<List<Contatos>> retornaTodosContatos() {
  return criarBancoDeDados().then((db) {
    return db.query('tbContatos').then((mapas) {
      final List<Contatos> contatos = [];
      for (Map<String, dynamic> map in mapas) {
        final Contatos contato = Contatos(
          map['id'],
          map['nome'],
          map['numeroConta'],
        );
        contatos.add(contato);
      }
      return contatos;
    });
  });
}

Gostaria de ajuda, por favor.

2 respostas
solução!

Na verdade, desinstalei meu aplicativo do emulador e executei novamente, não apareceu mais os erros.

O meu ainda assim não rodou.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software