Error Querying DB SQLite information [closed]

2

I'm using sqliteopenhelper class to connect to the database, our save () method, is working perfectly, but our fetch method (), where my cursor lists all cities is not finding the table, bringing the following error in logcat: no such table cidade.

Below is our city class where it is to display our list of cities and tb follows our CiudadDataSource where you will find all methods of manipulating the bank.

The error happens on onstart in the CityActivity, which calls me buscar() of my CidadeDataSource :

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

}

Search method

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);
}

CityActivity Class

    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);
        }
    }

DataSource City Class:

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;
    }



}
    
asked by anonymous 20.10.2015 / 01:19

0 answers