Android SQLite数据库添加数据出错 at android.database.sqlite.SQLiteStatement.releaseAndUnlock

原创 2016年06月01日 20:48:35

今天试着做了注册页面往本地数据库添加数据的操作,结果出现了

 

at android.database.sqlite.SQLiteStatement.releaseAndUnlock

这个错误,报错空指针异常,经检查发现原来是当执行插入操作是数据库连接已经关闭掉了,仔细检查改正为每次执行插入操作都关闭数据库连接再重新获取连接,改正后代码如下:

package com.example.sharedpreferences;

import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Register extends Activity{
	private static Button button_register_Register;
	private static EditText edit_username_Register,edit_password_Register;
	private String name;
	private String password;
	private SQLiteDatabase sqldb;
	private SQLiteHelper sqlh;
	protected void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);
		this.requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.register_layout);
		button_register_Register = (Button)findViewById(R.id.Button_register);
		edit_username_Register = (EditText)findViewById(R.id.Edit_username);
		edit_password_Register = (EditText)findViewById(R.id.Edit_password);
		button_register_Register.setOnClickListener(new ButtonListener());
		
		
		Toast.makeText(this, SQLiteHelper.TABLE_NAME, Toast.LENGTH_SHORT).show();
		
		
	}
	public class ButtonListener implements OnClickListener{
		public void onClick(View v) {
			switch (v.getId()){
			case R.id.Button_register:
				sqlh = new SQLiteHelper(Register.this);
				System.out.println("01");
				//获取数据库写入权限.
				sqldb = sqlh.getWritableDatabase();
				System.out.println("02");
				name = edit_username_Register.getText().toString();
				edit_username_Register.setText("");
				password = edit_password_Register.getText().toString();
				edit_password_Register.setText("");
				String insertquery = "INSERT INTO "+SQLiteHelper.TABLE_NAME+" ("+SQLiteHelper.NAME+","+
				SQLiteHelper.PASSWORD+") VALUES ('"+name+"','"+password+"');";
				sqldb.execSQL(insertquery);
				Toast.makeText(Register.this, "Saved success", Toast.LENGTH_SHORT).show();
				sqldb.close();
			}
		}
		
	}
}

修改了一下午,终于完成了,特此记录,以免日后再次出错

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android批量插入数据到SQLite数据库

Android中在sqlite插入数据的时候默认一条语句就是一个事务,因此如果存在上万条数据插入的话,那就需要执行上万次插入操作,操作速度可想而知。因此在Android中插入数据时,使用批量插入的方式...
  • echome33
  • echome33
  • 2014年05月18日 13:35
  • 847

listview动态添加数据,使用sqlite对本地数据库增删改查

对数据库使用不太熟悉,记录一下,方便自己查看package com.simon.listdemo;import android.app.Activity; import android.app.Ale...
  • simon_yuyu
  • simon_yuyu
  • 2016年04月21日 13:32
  • 1169

android sqlite 创建数据库,表、增加数据、更新数据、删除数据

今天学习了android 中内嵌的数据库sqlite,sqlite的简单介绍: SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储、管理、维护等各方...
  • sinat_29962405
  • sinat_29962405
  • 2015年12月03日 23:04
  • 4228

android中SQLite数据库中用insert同时插入多条记录的方法和效率比较

没验证。 android中SQLite数据库中用insert同时插入多条记录的方法和效率比较 在Android开发中我们常会遇到这样一种情况:在建立一个SQLite数据库时,想同时插入大量数据。那...
  • aree
  • aree
  • 2014年04月18日 14:23
  • 2802

Android整理:SQlite数据库的使用以及通过listView显示数据

前言:上个月与同学一起做了一个简单的Android应用,这段时间正好没有很多事情所以趁热整理一下学习到的知识,刚开始学习Android还有很多不懂的地方,继续努力吧! 作业中需要用到数据库,...
  • lgh1992314
  • lgh1992314
  • 2015年05月02日 20:44
  • 3963

SQLite数据库之数据添加与删除

-------------------------------------- SQLite数据库-------------------------------------- Android自带SQ...
  • AntaoMen
  • AntaoMen
  • 2016年10月20日 19:33
  • 533

Android SQLite 升级数据库,在原有数据库的基础上添加一列

原本以为很简单的问题,直接在原来创建数据库的语句中加上需要添加的列new_column,但是运行时发现,应用crash。原因是,原有数据库文件已经存在的情况下并不会重新创建数据库,也就是说此时数据库中...
  • xidiankk
  • xidiankk
  • 2016年05月30日 16:52
  • 1624

android中sqlite数据库升级方案

android开发中,如果大家使用到了sqlite就会牵涉到它的升级问题,因为升级后的表结构可能完全不一样,会有字段的添加或者删除等。。    sqlite升级思路:      1:将表A重新命名...
  • yaya_soft
  • yaya_soft
  • 2013年12月03日 08:39
  • 16184

Android当Sqlite 增加字段或者减少字段时如何不让程序崩溃。

问题描述:当App一个版本上线后,如果本地的sqlite 数据库表
  • tyler520free
  • tyler520free
  • 2014年10月23日 09:39
  • 2011

Android中SQLite数据库介绍和使用

转载请注明出处: SQLite简介        上一篇博文我们学习了Android几种简单的数据存储方式,SharedPreference存储和文件存储(其中又分为外部设备文件存储和内部...
  • yegongheng
  • yegongheng
  • 2014年07月25日 16:45
  • 5014
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android SQLite数据库添加数据出错 at android.database.sqlite.SQLiteStatement.releaseAndUnlock
举报原因:
原因补充:

(最多只允许输入30个字)