1
resposta

no such table: banks in "SELECT * FROM banks"

Após a implementação da correção no trecho do FutureBuilder dessa forma nao consigo visualizar nada na listagem e recebo o retorno no log

no such table: banks in "SELECT * FROM banks"

body: FutureBuilder( future: findAll(), builder: (context, snapshot) { if (snapshot.data != null) { final List banks = snapshot.data as List; return ListView.builder( itemBuilder: (context, index) { final Bank bank = banks[index]; return _BankItem(bank); }, itemCount: banks.length, ); } else { return const Card(); } }, ),

Segue o codigo do DB 

import 'package:flutter_project2/model/banks.dart';

import 'package:path/path.dart'; import 'package:sqflite/sqflite.dart';

Future createDataBase() { return getDatabasesPath().then((dbPath) { final String path = join(dbPath, 'project.db'); return openDatabase(path, onCreate: (db, version) { db.execute('CREATE TABLE banks (' 'id INTERGER PRIMARY KEY,' 'name TEXT, ' 'account_number INTERGER,' 'agency_number INTERGER'); }, version: 1); }); }

Future save(Bank bank) { return createDataBase().then((db) { final Map<String, dynamic> bankMap = Map(); bankMap['name'] = bank.name; bankMap['agency'] = bank.agency; bankMap['account'] = bank.account; return db.insert('banks', bankMap); }); }

Future findAll() { return createDataBase().then((db) { return db.query('banks').then((maps) { final List banks = []; for (Map<String, dynamic> map in maps) { final Bank bank = Bank( map['id'], map['name'], map['agency'], map['account'], ); banks.add(bank); } return banks; }); }); }

1 resposta

Olá, Nathália! Tudo bem?

Pelo que entendi, você está recebendo o erro "no such table: banks in 'SELECT * FROM banks'" ao tentar visualizar a listagem de bancos após implementar uma correção no trecho do FutureBuilder. Esse erro geralmente ocorre quando a tabela "banks" não existe no banco de dados.

Verifique se você executou o método createDataBase() para criar o banco de dados e a tabela "banks" corretamente. Certifique-se também de que a versão do banco de dados está correta.

Além disso, observe se não há nenhum erro de digitação no nome da tabela ou nos campos da tabela ao realizar o SELECT.

Caso tenha certeza de que o banco de dados e a tabela foram criados corretamente, pode ser necessário verificar se o caminho do banco de dados está correto. Verifique se o caminho está sendo obtido corretamente através do método getDatabasesPath() e se está sendo concatenado corretamente com o nome do banco de dados.

Espero ter ajudado a identificar o problema! Se tiver mais alguma dúvida, é só perguntar. Bons estudos!