0

我正在开发一个应用程序,我遇到了这个问题,我做了一切,但仍然没有解决,它包含一个error = "column 'name' does not exist" 如果可能的话给我一些解决这个问题的提示我也删除了手机中的数据库,请帮助我提前谢谢。

public class DataBaseBON {
      String TAG;
      private  Context ourContext;
      private  dbhelper ourhelper;
      private  SQLiteDatabase ourdatabase;
      public final static String KEY_ID= "_id";
      public final static String KEY_NUMBER="blockednumbers";
      public final static String N_NAME="name";
      public final static String DATABASE_NAME="databasebon.db";          
      public final static String DATABASE_TABLE="tabledb";
      public final static int DATABASE_VERSION=2;
      private static final String DATABASE_CREATE = "create table "
                + DATABASE_TABLE + "(" + KEY_ID
                + " integer primary key autoincrement, " 
                + N_NAME + " text not null,"
                + KEY_NUMBER
                + " text not null);";


      public class dbhelper extends SQLiteOpenHelper{

          public dbhelper(Context context) {    //?
            super(context, DATABASE_NAME, null, DATABASE_VERSION);

        }

        @Override
        public void onCreate(SQLiteDatabase database) {
            database.execSQL(DATABASE_CREATE);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            Log.w(dbhelper.class.getName(),
                    "Upgrading database from version " + oldVersion + " to "
                            + newVersion + ", which will destroy all old data");
            db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
            onCreate(db);
        }

      }

      public DataBaseBON(Context c){

          ourContext =c ;
      }

      public DataBaseBON open() throws SQLException{
          ourhelper = new dbhelper(ourContext);
          ourdatabase = ourhelper.getWritableDatabase();
          ourdatabase=ourhelper.getReadableDatabase();
          return this;
      }

      public void close(){
          ourhelper.close();
      }

      public long creatEntry(String inputnumber , String name) {
        // TODO Auto-generated method stub
        ContentValues cv= new ContentValues();
        cv.put(KEY_NUMBER, inputnumber);
        cv.put(N_NAME, name);
        Log.v(inputnumber, "adding to Database");
        return ourdatabase.insert(DATABASE_TABLE, null, cv);

    }


      public Cursor getcursor() {

        String[] columns = new String[]{ N_NAME, KEY_NUMBER };
        Cursor c=ourdatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
        return c;}


    public String[]   getcloumns() {

        String[] columns = new String[]{ N_NAME, KEY_NUMBER };

        return columns ;
    }

    public int[]  getto() {
        String TAG = null;
        int[] to = new int[] { android.R.id.text1, android.R.id.text2  };
        Log.v(TAG, "get to is ok");
        return to ;
    }
     public String[]  getdata3(String[] result) {
        String TAG = null;
        String[] columns = new String[]{ N_NAME, KEY_NUMBER };
        Cursor c=ourdatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
        int iRow = c.getColumnIndex(N_NAME);
        int iName = c.getColumnIndex(KEY_NUMBER);
        for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
        @SuppressWarnings("unused")
        String[] result1= new String[] {c.getString(iName),c.getString(iRow)};
        Log.v(TAG, "is ok");
        }

        return result; 

             }

错误 :

11-25 23:49:33.633: E/AndroidRuntime(4072): java.lang.RuntimeException: Unable to startactivity 
ComponentInfo{vahid.engineer.com/vahid.engineer.com.BlackNumbersBlockDb}: 
            java.lang.IllegalArgumentException: column 'name' does not exist
4

2 回答 2

2

您的 dbhelper 上需要此行

this.db = this.getWritableDatabase();

否则不会调用 onCreate。请注意,您也需要一个“数据库数据库”变量

http://www.finalconcept.com.au/article/view/android-creating-a-sqlite-database

于 2012-11-25T17:15:31.127 回答
0

有点晚了,但总比没有好我有这样的问题,我正在使用内容提供程序,所以当你投影表的属性时,任何未投影的属性都不会对基本 uri 可见,因此要更正该问题,投影表的所有属性projectionMap.put(Tablename.Attribute1, Tablename.Attribute1) ;

于 2014-04-22T15:15:15.227 回答