"close() was never explicitly " banco android

boa noite, está dando esse erro ao executar o metodo update

alguem pode me ajudar??

[code]package com.tedesco.controlefinanceiro;

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

import com.actionbarsherlock.ActionBarSherlock;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;

import android.R;
import android.R.integer;
import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;
import android.content.ContentValues;
import android.content.Intent;
import android.os.Handler;
import android.app.AlertDialog;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Spinner;
import android.view.View.OnClickListener;
import android.widget.Toast;

public class Activity_cup extends SherlockActivity {
SQLiteDatabase bancoDados = null;
SQLiteDatabase bancoDado = null;
Cursor cursor;
String nomeBanco = “tedesco.controlefinanceiro”;
SimpleCursorAdapter dataSource;
List lstcup = new ArrayList();
String id;
int tela;

protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(com.tedesco.controlefinanceiro.R.layout.activity_cup);
	Intent intent = getIntent();
	Bundle params = intent.getExtras();  
	//Log.d("teste",params.getInt("mensagem"));
	EditText nome       = (EditText) findViewById(com.tedesco.controlefinanceiro.R.id.edt_nomeraz);
	
	//selecionarDados();
	

	tela = params.getInt("tela");
	if (tela==1){
		id   = params.getString("id");
		Alteracao(id);
		cursor= null;

	}
}

private void Alteracao(String id) {
// TODO Auto-generated method stub

bancoDados = openOrCreateDatabase(nomeBanco, MODE_PRIVATE, null);
cursor = bancoDados.rawQuery("select id as _id, nome_raz_social, tipo_pessoa, cnpj,telefone,tipo from TB_CUP where _id="+id, null);
cursor.moveToFirst();

EditText nome       = (EditText) findViewById(com.tedesco.controlefinanceiro.R.id.edt_nomeraz);
Spinner tipo_pessoa = (Spinner) findViewById(com.tedesco.controlefinanceiro.R.id.sp_tpessoa);
EditText telefone   = (EditText) findViewById(com.tedesco.controlefinanceiro.R.id.edt_tel);
EditText cnpjcpf    = (EditText) findViewById(com.tedesco.controlefinanceiro.R.id.edt_cpfcnpj);
nome.setText(cursor.getString(cursor.getColumnIndex("nome_raz_social")));
telefone.setText(cursor.getString(cursor.getColumnIndex("telefone")));
cnpjcpf.setText(cursor.getString(cursor.getColumnIndex("cnpj")));

}
public void selecionarDados(){
try
{
bancoDados = openOrCreateDatabase(nomeBanco, MODE_PRIVATE, null);

cursor = bancoDados.rawQuery("select id as _id, nome_raz_social, tipo_pessoa,telefone,tipo from TB_CUP", null);
String[] from ={"_id","nome_raz_social","telefone"};

cursor.moveToFirst();
int i=0;
while (!cursor.isAfterLast()) {
	
	lstcup.add(cursor.getString(0));
    cursor.moveToNext();
    i++;

}
}finally{
bancoDados.close();
cursor.close();
}

}

public void Update(){
try
{

	bancoDado = openOrCreateDatabase(nomeBanco, MODE_PRIVATE, null);
	String _id = String.valueOf(id);
	
	EditText nome       = (EditText) findViewById(com.tedesco.controlefinanceiro.R.id.edt_nomeraz);
	Spinner tipo_pessoa = (Spinner) findViewById(com.tedesco.controlefinanceiro.R.id.sp_tpessoa);
	EditText telefone   = (EditText) findViewById(com.tedesco.controlefinanceiro.R.id.edt_tel);
	EditText cnpjcpf    = (EditText) findViewById(com.tedesco.controlefinanceiro.R.id.edt_cpfcnpj);
	cursor = bancoDado.rawQuery("update tb_cup set nome_raz_social='"+nome.getText().toString()+"',tipo_pessoa='"+tipo_pessoa.getSelectedItem().toString()+
	"',telefone='"+telefone.getText().toString()+"',cnpj='"+cnpjcpf.getText().toString()+"' where id="+id, null);
} finally
		{
			bancoDado.close();
			cursor.close();
		}

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getSupportMenuInflater().inflate(com.tedesco.controlefinanceiro.R.menu.save, menu);
    return super.onCreateOptionsMenu(menu);
}

public boolean onOptionsItemSelected(MenuItem item) {

	
    switch (item.getItemId()) {
    case com.tedesco.controlefinanceiro.R.id.save:
		if (tela==0){
			InsertCup();
		}
		else
		{
			Update();
		}
       return true;
    default:
        return super.onOptionsItemSelected(item);
    }

}
public void InsertCup(){

	SQLiteDatabase bancoDados = null;
	Cursor cursor;
	String nomeBanco = "tedesco.controlefinanceiro";
	bancoDados = openOrCreateDatabase(nomeBanco, MODE_PRIVATE, null);
	String texto = "Registro Inserido com Sucesso";
	int duracao = Toast.LENGTH_SHORT;
	
	EditText nome       = (EditText) findViewById(com.tedesco.controlefinanceiro.R.id.edt_nomeraz);
	Spinner tipo_pessoa = (Spinner) findViewById(com.tedesco.controlefinanceiro.R.id.sp_tpessoa);
	EditText telefone   = (EditText) findViewById(com.tedesco.controlefinanceiro.R.id.edt_tel);
	EditText cnpjcpf    = (EditText) findViewById(com.tedesco.controlefinanceiro.R.id.edt_cpfcnpj);
 try {
	     	 	
		ContentValues initialValues = new ContentValues();
		initialValues.put("nome_raz_social", nome.getText().toString());
		initialValues.put("tipo_pessoa", tipo_pessoa.getSelectedItem().toString());
		initialValues.put("telefone", telefone.getText().toString());
		initialValues.put("cnpj", cnpjcpf.getText().toString());
		bancoDados.insert("tb_cup", null, initialValues);
		
		Toast.makeText(getApplicationContext(), texto, Toast.LENGTH_SHORT).show();
		
		
	} 
	catch(Exception erro)
	   {
		   mensagemExibir("Erro", "Erro ao inserir registro: "+erro.getMessage());
	   }
	
}
public void mensagemExibir(String titulo, String texto)
   {
		AlertDialog.Builder mensagem = new AlertDialog.Builder(Activity_cup.this);
		mensagem.setTitle(titulo);
		mensagem.setMessage(texto);
		mensagem.setNeutralButton("OK",null);
		mensagem.show();

   }

}

[/code]

ele dá o erro mas não impede o funcionamento. Ele só está dizendo que você abriu o banco de dados, e deixou a conexão dele aberta…

pra não aparecer isso daí mais, dá um bancoDados.close(); depois de terminar de fazer tudo no banco.

btw, se vc não fizer também, o programa vai funcionar do mesmo jeito. Pelo menos nos meus tudo funciona mesmo com a mensagem.

[quote=saryoromulo]ele dá o erro mas não impede o funcionamento. Ele só está dizendo que você abriu o banco de dados, e deixou a conexão dele aberta…

pra não aparecer isso daí mais, dá um bancoDados.close(); depois de terminar de fazer tudo no banco.

btw, se vc não fizer também, o programa vai funcionar do mesmo jeito. Pelo menos nos meus tudo funciona mesmo com a mensagem.
[/quote]

Bom dia, mas no meu ele da erro e fexa a aplicacao.

hmmmm, mas tenho quase certeza que esse então não é o motivo de estar travando viu…

dei uma olhada melhor no seu método Update… não faz assim não, cara…

faz desse jeito:

bancoDado.execSQL(comando_do_update_aqui);

o rawQuery vc só usa mesmo pra alimentar o cursor trazendo um select… quando quiser rodar algum comando no banco usa esse execSQL aí que fica jóia.

outra coisa, recomendo vc criar umas funções padrões pra select, update e td mais… eu uso assim, daí só passo o sql como parametro pra ela e ela roda o rawquery ou entao o execsql…

se não der certo com essa mudança aí, tenta debugar o código e ve qual é a linha que dá o erro…

[quote=saryoromulo]hmmmm, mas tenho quase certeza que esse então não é o motivo de estar travando viu…

dei uma olhada melhor no seu método Update… não faz assim não, cara…

faz desse jeito:

bancoDado.execSQL(comando_do_update_aqui);

o rawQuery vc só usa mesmo pra alimentar o cursor trazendo um select… quando quiser rodar algum comando no banco usa esse execSQL aí que fica jóia.

outra coisa, recomendo vc criar umas funções padrões pra select, update e td mais… eu uso assim, daí só passo o sql como parametro pra ela e ela roda o rawquery ou entao o execsql…

se não der certo com essa mudança aí, tenta debugar o código e ve qual é a linha que dá o erro…[/quote]

Muito obrigado. deu certo com execSQL.