使用老师的代码创建数据库,第二次打开程序就崩溃是什么原理呢
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();// 最后要清除游标对象 } }
举报