Eclipse前面的红x可以自动修复这些错误的吧. 你直接说这个错误太抽象了, 没有上下文 怎么帮你?

解决方案 »

  1.   

    不知道你在哪找的demo
    mOpenHelper  这个是自己写的类
    一般都会自己写个类继承 SqliteOpenHelper最好日志发全了  这样能帮你分析是什么问题
      

  2.   

    这里是全部java代码:
    package com.handson.sql;import android.app.Activity;
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;public class TestSql extends Activity {
    private Button btn1,btn2,btn3,btn4,btn5;

        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            btn1=(Button)this.findViewById(R.id.btn1);
            btn2=(Button)this.findViewById(R.id.btn2);
            btn1=(Button)this.findViewById(R.id.btn3);
            btn2=(Button)this.findViewById(R.id.btn4);
            btn2=(Button)this.findViewById(R.id.btn5);
            
            Button.OnClickListener btn=new Button.OnClickListener(){ @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    switch(v.getId()){
    case R.id.btn1:insertItem();break;
    case R.id.btn2:deleteItem();break;
    case R.id.btn3:queryItem();break;
    case R.id.btn4:deleteTable();break;
    case R.id.btn5:replaceTable();break;
    }
    } private void replaceTable() {
    // TODO Auto-generated method stub

    } private void deleteTable() {
    // TODO Auto-generated method stub

    } private void queryItem() {
    // TODO Auto-generated method stub

    } private void deleteItem() {
    // TODO Auto-generated method stub

    } private void insertItem() {
    // TODO Auto-generated method stub
    SQLiteDatabase db=mOpenHelper.getWritableDatabse();
    }
            
            };
            
            btn1.setOnClickListener(btn);
            btn2.setOnClickListener(btn);
            btn3.setOnClickListener(btn);
            btn4.setOnClickListener(btn);
            btn5.setOnClickListener(btn);
        }
        private static class DatabaseHelper extends SQLiteOpenHelper{ public DatabaseHelper(Context context, String name,
    CursorFactory factory, int version) {
    super(context, name, factory, version);
    // TODO Auto-generated constructor stub
    } @Override
    public void onCreate(SQLiteDatabase sd) {
    // TODO Auto-generated method stub
    //sql语句
    String sql="create table dairy (title ,body);";
    Log.i("haiyang:Create DB=",sql);
    //执行sql语句
    sd.execSQL(sql);
    } @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
    // TODO Auto-generated method stub

    }
        }
    }
      

  3.   

    我想来创建数据表,添加记录,删除记录,查找记录,可
    SQLiteDatabase db=mOpenHelper.getWritableDatabse();
    总是引用不到???请大虾帮忙???
      

  4.   

    mOpenHelper  这个你声明了吗?
    编译能过?
      

  5.   

    SQLiteDatabase db=mOpenHelper.getWritableDatabse();
    改为
    SQLiteDatabase db=new DatabaseHelper(this,xxx,xxx,xxx).getWritableDatabse();
    这个是java语言问题 和android 无关
    其次 copy过来的代码 要自己仔细读读
      

  6.   

    额,谢谢,mOpenHelper不是内置方法类吗,怎么调用不到呢,用它的目的是:在增删改查时,如果没有该数据库表,自动创建,你说的
    SQLiteDatabase db=new DatabaseHelper(this,xxx,xxx,xxx).getWritableDatabse();
    功能一样吗??
      

  7.   

    在TestSql类onCreate()中加入:
    mOpenHelper = new DatabaseHelper(this,DB_NAME,null,DB_VERSION);