为了账号安全,请及时绑定邮箱和手机立即绑定

我的程序在最后一输入db.close()语句Logcat就会显示出错,不输入db.close()语句Logcat就没有显示错误,求解老师,哪里错了???

package com.example.lianxi;


import android.app.Activity;

import android.content.ContentValues;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;


public class MainActivity extends Activity {

EditText e1,e2,e3;

Button b1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

e1=(EditText)findViewById(R.id.e1);

e2=(EditText)findViewById(R.id.e2);

e3=(EditText)findViewById(R.id.e3);

b1=(Button)findViewById(R.id.insert);


   final SQLiteDatabase db=openOrCreateDatabase("user2.db", MODE_PRIVATE, null);

db.execSQL("create table if not exists usertb2(_id integer primary key autoincrement,name text not null,sex text not null,age integer not null)");

        

b1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

String a=e1.getText().toString();

String b=e2.getText().toString();

int c=Integer.parseInt(e3.getText().toString());

ContentValues values=new ContentValues();

values.put("age", c);

values.put("sex", b);

values.put("name", a);

db.insert("usertb2", null, values);

//db.execSQL("insert into userdb1(name,sex,age)values(a,b,11)");

   values.clear();

}

});


b3.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Cursor c=db.query("usertb2", null, "_id<?",new String[]{"10"}, null, null, "name");

if(c!=null)

{

String[] columns=c.getColumnNames();


while (c.moveToNext()) {

for(String columnName:columns)

{

Log.i("info",c.getString(c.getColumnIndex(columnName)));;

}

}

c.close();

}

}

});

db.close();   //我的程序在这里一输入db.close()语句Logcat就会显示出错,不输入db.close()语句Logcat就没有显示错误????

}

}   //其中e1,e2,e3是输入的信息,再插入到数据库的表中,按钮有insert(插入按钮)

正在回答

2 回答

我也遇到了这个问题,因为代码的执行顺序不同,你先close(),sql肯定找不到你要的查找的那张表了呀!

我的理解是这样的。目前我也没有找到解决办法!

0 回复 有任何疑惑可以回复我~

那个b3按钮的那段,我发程序的时候,不小心把放在前面的语句Button b3;和b3=(Button)findViewById(R.id.getinfo);这一句删掉了,b3按钮是查询输入的数据的上面可以注释掉b3按钮的那段,或者加上被我删除的这两句。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第二门课(第3季)
  • 参与学习       74922    人
  • 解答问题       420    个

手势识别、数据存储和4大组件,让你牢牢掌握之前的基础知识点

进入课程

我的程序在最后一输入db.close()语句Logcat就会显示出错,不输入db.close()语句Logcat就没有显示错误,求解老师,哪里错了???

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信