Jump to content
Fórum Script Brasil
  • 0

Erro ao consultar informações DB SQLITE


ceunsp2015
 Share

Question

Boa noite amigos.

Estamos ultilizando a classe sqliteopenhelper do android para conexão com o banco de dados, o nosso metodo salvar(), está funcionando perfeitamente, mas noss metodo buscar() onde meu cursor lista todas as cidade cadastradas não está encontrando a tabela, trazendo o seguinte erro no logcat: no such table cidade.

Abaixo segue nossa classe cidade onde é para exibir nossa lista de cidades e tb segue nossa CidadeDataSource onde encontra-se todos metodos de manipulação do banco.

O erro acontece no onstart na CidadeActivity

    protected void onStart() {
        super.onStart();
        Log.i(LOGTAG, "Entramos no OnStart");
        this.popularLista((ArrayList<Cidade>)ds.buscar());
        
    }
  

Que chama o me metodo buscar() da minha CidadeDataSource

public  List<Cidade> buscar(){
    
    String[] colunas = new String [] {"_id", "nome", "estado"};
    
    Cursor cursor = db.query("cidade", colunas, null, null, null, null, "nome ASC");
    
    Log.i(LOGTAG, "Entramos no Buscar");    
    
    return obterLista(cursor);
}

 

 

Muito obrigado desde já amigo.

 

package com.example.biowater3;

import java.util.ArrayList;

import com.example.biowater3.conf.Cidade;
import com.example.biowater3.data.CidadeDataSource;
import com.example.biowater3.helper.CidadeAdapter;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;



public class CidadeActivity extends Activity {
    
    public static final String LOGTAG = "Informacoes";
    CidadeDataSource ds;
    CidadeAdapter adapter;
    ArrayList<Cidade> listaCidade;
    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cidade);
        getActionBar().setDisplayHomeAsUpEnabled(true);
        
        startDataBase();
        registerForContextMenu ((ListView) findViewById(R.id.cidadeListView));
        
    }

    protected void onStart() {
        super.onStart();
        Log.i(LOGTAG, "Entramos no OnStart");
        this.popularLista((ArrayList<Cidade>)ds.buscar());
        
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.cidade, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        
        int id = item.getItemId();
        if (id == R.id.action_conf) {
           Intent objIntent = new Intent (this, ConfigActivity.class);
           startActivity (objIntent);
    
        
        }
        return super.onOptionsItemSelected(item);
    }
    

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
        menu.setHeaderTitle(listaCidade.get(info.position).getNome());
        
        getMenuInflater().inflate(R.menu.ctx_cidade_menu, menu);
        
    }
    
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item;
                
        switch (item.getItemId()) {
        case R.id.ctx_cidade_menu_editar :
            Intent intent = new Intent(this, CadCidadeActivity.class);
            Bundle bundle = new Bundle();
            bundle.putSerializable("objCidade", listaCidade.get(info.position) );
            intent.putExtras(bundle);
            startActivity(intent);
            break;
            
        case R.id.ctx_cidade_menu_apagar :
            excluirCidade(info.position);
            break;
            default:
                break;
    
        }
                
                return true;
    }
    
    
    private void excluirCidade(int posicaoExcluir) {
        final int posicaoRemover = posicaoExcluir;
        final ArrayList<Cidade> lst = this.listaCidade;
        
        AlertDialog.Builder adb=new AlertDialog.Builder(this);
        adb.setTitle("Excluir - " + lst.get(posicaoExcluir).getNome());
        adb.setMessage("Tem certeza que deseja excluir este registro?");
        adb.setNegativeButton("Não", null);
        adb.setPositiveButton("Sim", new AlertDialog.OnClickListener(){
            
            @Override
            public void onClick(DialogInterface dialog, int whitch){
                if(!(adapter == null)){
                    ds.deletar(lst.get(posicaoRemover));
                    Toast.makeText(getApplicationContext(), "O Registro: " + lst.get(posicaoRemover) + "Foi Removido Com Sucesso!!", Toast.LENGTH_LONG).show();
                    lst.remove(posicaoRemover);
                    adapter.notifyDataSetChanged();
                }
                }
        });
        
        adb.show();
        
    }


    private void startDataBase() {
        ds = new CidadeDataSource(this);
        ds.open();                
    }
    
    
    private void popularLista (ArrayList<Cidade> cidade){
        
        this.listaCidade = cidade;
        adapter = new CidadeAdapter(this, this.listaCidade);
        ListView lista = (ListView) findViewById(R.id.cidadeListView);
        lista.setAdapter (adapter);
    }
}
 

 

 

=================================================================================================

 

package com.example.biowater3.data;

import java.util.ArrayList;
import java.util.List;

import com.example.biowater3.conf.Cidade;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

public class CidadeDataSource {
    
    public static final String LOGTAG = "informacoes";
    private SQLiteDatabase db;
    private MainDBBio dbHelper;
    
    public CidadeDataSource(Context context){
        
        dbHelper = new MainDBBio (context);
        
    }
    
    public void open (){
        Log.i(LOGTAG, "BANCO DE DADOS ABERTO");
        db = dbHelper.getWritableDatabase();
        
    }
    
    public void close(){
        Log.i(LOGTAG, "BANCO DE DADOS FECHADO");
        dbHelper.close();
        
    }
    
    
public Cidade inserir (Cidade cidade){
        
        ContentValues valores = new ContentValues();
        
        valores.put("nome", cidade.getNome());    
        valores.put("estado", cidade.getEstado());
        
        cidade.setId(db.insert("cidade", null, valores ));
        return cidade;
        
            
    }

public void atualizar (Cidade cidade){
    
    ContentValues valores = new ContentValues();
    valores.put("nome", cidade.getNome());
    valores.put("estado", cidade.getEstado());
    
    db.update("cidade", valores, "_id = " + cidade.getId(), null );
    
    
}

public void deletar (Cidade cidade){
    
    db.delete("cidade","_id = " + cidade.getId(),null);
    
}

public  List<Cidade> buscar(){
    
    String[] colunas = new String [] {"_id", "nome", "estado"};
    
    Cursor cursor = db.query("cidade", colunas, null, null, null, null, "nome ASC");
    
    Log.i(LOGTAG, "Entramos no Buscar");    
    
    return obterLista(cursor);
}

public List<Cidade> filtrar(String selecao, String ordenacao){
    
    String[] colunas = new String[] {"_id", "nome"};
    Cursor cursor = db.query("cidade", colunas, selecao , null, null, null , ordenacao);
    
    return obterLista(cursor);
    
    }
    
    private List<Cidade> obterLista (Cursor cursor){
        
        List<Cidade> listaCidade = new ArrayList<Cidade>();
        
        if(cursor.getCount() > 0 ){
            
            while (cursor.moveToNext() ) {
                
                Cidade cidade = new Cidade();
                
                cidade.setId(cursor.getLong(cursor.getColumnIndex("_id")));
                cidade.setNome(cursor.getString(cursor.getColumnIndex("nome")));
                cidade.setEstado(cursor.getString(cursor.getColumnIndex("estado")));
                
                listaCidade.add(cidade);
            }
        }
                
        return listaCidade;
    }
    


}

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...