Jump to content
Sign in to follow this  
marcioribsp

Erro ao consultar informações DB SQLITE.

Recommended Posts

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



}

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.