使用老师的代码创建数据库,第二次打开程序就崩溃是什么原理呢
2333333333333333
2333333333333333
2016-08-31
package com.tong.projecte04_2_2;
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.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
public void init() {
SQLiteDatabase db = openOrCreateDatabase("tong.db", MODE_PRIVATE, null);
String sql = "CREATE TABLE tongtb ( _ID INTEGER PRIMARY KEY AUTOINCREMENT not null ,name CHAR(10),nickname CHAR(10))";
db.execSQL(sql);
ContentValues values = new ContentValues();// 键值对,类似于HASHMAP
values.put("name", "宋江0");
values.put("nickname", "及时雨0");
long rowid = db.insert("tongtb", null, values);// 插入数据语句,返回值是长整型,如果不使用可以去掉
values.clear();// 一个数据创建完成后需要清除values才能再次向数据库中添加数据
values.put("name", "宋江1");
values.put("nickname", "及时雨1");
db.insert("tongtb", null, values);
values.clear();
values.put("name", "宋江2");
values.put("nickname", "及时雨2");
db.insert("tongtb", null, values);
values.clear();
values.put("name", "宋江3");
values.put("nickname", "及时雨3");
db.insert("tongtb", null, values);
values.clear();
values.put("name", "宋江4");
values.put("nickname", "及时雨4");
db.insert("tongtb", null, values);
values.clear();
values.put("name", "宋江5");
values.put("nickname", "及时雨5");
db.insert("tongtb", null, values);
values.clear();
values.put("name", "宋江6");
values.put("nickname", "及时雨6");
db.insert("tongtb", null, values);
values.clear();
values.put("name", "宋江7");
values.put("nickname", "假及时雨7");
db.insert("tongtb", null, values);
values.clear();
// 更新数据库
values.put("nickname", "hanker");
db.update("tongtb", values, "_id>?", new String[] { "4" });// 后面两个是更新条件,当_id>4时更新字段nickname全部为hanker
db.delete("tongtb", "name like ?", new String[] { "%7%" });// 删除字段nickname中带有“7”字的人的数据
// 查询数据
Cursor c = db.query("tongtb", null, "_id>?", new String[] { "%0%" },null, null, "name");
if (c != null) {
String[] colums = c.getColumnNames();
while (c.moveToNext()) {
for (String colum : colums) {// 使用foreach遍历数组
Log.i("info", c.getString(c.getColumnIndex(colum)));// 获取数据打印输出
System.out.println(c.getString(c.getColumnIndex(colum)));
}
}
c.close();
}
db.close();// 最后要清除游标对象
}
}举报