小弟是初学者,只是想验证性的做个关于SQLiteDatabase的小程序,但是运行老是出错,弹出强行关闭的窗口,而且我写的其他类似的关于SQLiteDatabase的程序都无法在模拟器上运行,求救啊....代码如下package com.jiandu;import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.widget.Toast;public class Test1 extends Activity {
@Overrideprotected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);
     MyDBHelper helper = new MyDBHelper(this);
     helper.insert();
     helper.query();
}class MyDBHelper extends SQLiteOpenHelper{
     private static final String C = "create table TableName(id integer ,name text)";  
     private SQLiteDatabase db;     public MyDBHelper(Context context) {
           super(context, "test.db", null, 1);
     }
     @Override
     public void onCreate(SQLiteDatabase db) {
          this.db = db;
         db.execSQL(C);
     }
     @Override
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
     }
     public void insert(){
          String sql = "insert into TableName(id,name)values(12,'david')";
          db.execSQL(sql);
     }     public void query(){
          Cursor cur = getWritableDatabase().query("TableName", null, null, null, null, null, null);
          for(int i = 0;i<cur.getCount();i++){
               cur.move(i);
               int id = cur.getInt(0);
               String name = cur.getString(1);
               Toast.makeText(Test1.this, name, Toast.LENGTH_LONG);         }    }}
}

解决方案 »

  1.   

    数据库建立和查询的时候有点问题class MyDBHelper extends SQLiteOpenHelper {
    private static final String C = "create table TableName(id integer ,name text)";
    private SQLiteDatabase db; public MyDBHelper(Context context,String name, CursorFactory factory,
    int version)
     {
    super(context, "test.db", null, 1);
    } @Override
    public void onCreate(SQLiteDatabase db) {
    this.db = db;
    db.execSQL(C);
    } @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    } public void insert() {
    String sql = "insert into TableName(id,name)values(12,'david')";
    getWritableDatabase().execSQL(sql);
    } public void query() {
    Cursor cur = getWritableDatabase().query("TableName", null, null, null,
    null, null, null);
    while(cur.moveToNext())
    {
    int id = cur.getInt(cur.getColumnIndex("id"));
    String name = cur.getString(cur.getColumnIndex("name"));
                            Toast.makeText(Test1.this, name, Toast.LENGTH_LONG);
    Log.d("name===>", "" + name);
    Log.d("id===>", "" + id);
    }
    cur.close(); }
    }在Test1调用时为:
    MyDBHelper helper = new MyDBHelper(this, "test.db", null, 1);
        helper.insert();
        helper.query();