3
respostas

Erro ao inserir dados no banco

E/flutter (24355): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: DatabaseException(table contacts has no column named account_number (code 1): , while compiling: INSERT INTO contacts (name, account_number) VALUES (?, ?) E/flutter (24355): #################################################################

3 respostas

Verifique se a sua tabela 'contacts' têm criada uma coluna com o nome 'account_number' . Deve estar exatamente neste formato, letras minúsculas.

Eu verifiquei, ela tem sim a coluna 'account_number', a pedido de um colega, removi a APK que estava no celular, uso o próprio aparelho para simular, e depois usei o 'Run' para reconstruir a aplicação. Depois disso funcionou parcialmente, pois quando pressiono o botão 'Create' no contact_form.dart o registro não aparece na lista, quando eu volto para a tela inicial e pressiono 'Contacts' aí sim aparece o registro que incluí na última operação, agora como eu resolvo isso ?

Converte sua widget para StatefulWidget. Como o colega aqui fez https://cursos.alura.com.br/forum/topico-stateless-para-stateful-100097.

observação: faça isso com a sua widget que faz a listagem dos dados. Exemplo:

import 'package:flutter/material.dart';
import 'package:tms_mobile2/database/app_database.dart';
import 'package:tms_mobile2/models/VolumesData.dart';
import 'package:tms_mobile2/screens/formularios/volumes_form.dart';

const _title = 'Volumes Data List';

///
/// @description: volume list 
/// @author: Tiago dos Santos
/// @since:2020-02-06
/// 
/// 
class VolumesList extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _VolumeListComponent();
  }
}

class _VolumeListComponent extends State<VolumesList>{
  final List<VolumeData> volumes = new List();

  @override
  Widget build(BuildContext context) {
   ...demais codigos
}
}