本帖最后由 baidu_19639095 于 2014-09-16 18:47:27 编辑

解决方案 »

  1.   

    insert语句写错了,应该这么写:database.execSQL(
    "insert into Student(stuid,stuname,stusex,wuli,shuxue,yingyu,shuxue) values(?,?,?,?,?,?,?)",
    new Object[]{131, "小红", "女", 88, 77, 85, 46});
      

  2.   

    创建表的时候,不应该有“IF NO EXISTS”这几个字,删除表的语句也不对。而且你的表数据类型也不对,sqlite貌似不支持VACHAR类型(你是想写VARCHAR?),应该是text1.建表database.execSQL("CREATE TABLE Student" +  
    "(stuid INTEGER PRIMARY KEY, stuname TEXT , stusex TEXT, wuli INTEGER,shuxue INTEGER, yingyu INTEGER, jisuanji INTEGER)");
    2.删表用delete就好了,drop table也许会出问题。database.execSQL("delete from Student");
      

  3.   

    我写了一个数据库类,你可以直接拿来用:public class MyDatabaseHelper extends SQLiteOpenHelper {
    public MyDatabaseHelper(Context context, String name, CursorFactory factory, int version) {
    super(context, name, factory, version);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
    db.execSQL("create table student("
    + "stuid integer primary key,"
    + "stuname text,"
    + "stusex text,"
    + "wuli integer,"
    + "shuxue integer,"
    + "yingyu integer,"
    + "jisuanji integer)");
    }
    public void add(int id, String name, String sex, int physics, int math, int english, int computer) {
    getWritableDatabase().execSQL(
    "insert into student(stuid,stuname,stusex,wuli,shuxue,yingyu,jisuanji) values(?,?,?,?,?,?,?)",
    new Object[]{id, name, sex, physics, math, english, computer});
    }
    public void deleteAll() {
    getWritableDatabase().execSQL("delete from student");
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
    }用法示例:public class MainActivity extends Activity {
    private MyDatabaseHelper dbHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    dbHelper = new MyDatabaseHelper(this, "student", null, 1);
    dbHelper.add(131, "小红","女", 88, 77, 85, 46);

    Button deleteButton = (Button)findViewById(R.id.delete);
    deleteButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    dbHelper.deleteAll();
    }
    });
    }
    }
      

  4.   

    你闪退,是因为发生了异常,你的异常信息是什么?发来看看,从你的代码来看,初步判断是数据库操作不当,你cusror和db每次使用完都没有关闭,估计是这个原因导致。
      

  5.   

    闪退就要从异常开始找问题,先把闪退的logcat发出来吧
      

  6.   

    先找闪退的原因,善于利用logcat日志
      

  7.   

    看 logcat 定位问题是什么!不要盲目的改。
      

  8.   

    我的异常信息是插入的时候插不进去
    我昨晚又通宵的看logcat了 然后尝试一个个的看
    终于发现是"_id"这个显示
    然后上网找了一下 是我没有在select的前面加rowid,(要查找的字段)
    因为我的stuid不是系统自己增加的 而是自己插入的 所以也不能有auto这个关键字在dbhelper 。。
      

  9.   


    你写个简单的测试程序都闪退?把日志贴出来看看?
    因为才刚开始学android 还没两周所以遇到很多问题  不过现阶段还在努力的进步中,,
    昨晚我把那个显示的给搞定了,,
    但是我又有一个问题了。。
    比如学生的姓名我都显示出来了
    然后我要通过点击学生的姓名把那一个学生的详细信息在另一个acitivity显示出来的时候
    不知道怎么动手了
      

  10.   

    嗯嗯嗯 
    昨天晚上我发现Logcat真的是个好东西。。