Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 传输到sqlite expert personal时更改了列的名称_Android_Database_Sqlite - Fatal编程技术网

Android 传输到sqlite expert personal时更改了列的名称

Android 传输到sqlite expert personal时更改了列的名称,android,database,sqlite,Android,Database,Sqlite,我的编码有问题。我正在使用eclipse和sqlite专家个人数据库 这是我的mydatabaseadapter代码 public class MyDatabaseAdapter { public static final String DATABASE_NAME = "Surah"; public static final String DATABASE_TABLE_SURAH = "surah"; public static final String DATABASE_TABLE_COUN

我的编码有问题。我正在使用eclipse和sqlite专家个人数据库

这是我的mydatabaseadapter代码

public class MyDatabaseAdapter {

public static final String DATABASE_NAME = "Surah";
public static final String DATABASE_TABLE_SURAH = "surah";
public static final String DATABASE_TABLE_COUNT = "count";
private static final int DATABASE_VERSION = 1;

// surah related columns    
public static final String SURAH_NAME ="surah_name";    
public static final String NO_OF_VERSE = "no_of_verse";
public static final String SURAH_ID ="surah_id";


// count related colums
public static final String VERSE_NAME = "verse_name";
public static final String COUNT = "count";
public static final String HIGHEST_VERSE_ID = "highest_verse_id";


private static final String TAG = "MyDatabaseAdapter";


/**
 * Database creation sql statement
 */
private static final String DATABASE_CREATE_SURAH =
    "create table IF NOT EXISTS " + DATABASE_TABLE_SURAH + " (" + SURAH_ID + " integer primary key, "
    + SURAH_NAME + " TEXT not null," + NO_OF_VERSE + " INTEGER not null," + HIGHEST_VERSE_ID + 
    " INTEGER REFERENCES COUNT(HIGHEST_VERSE_ID));";

private static final String DATABASE_CREATE_COUNT =
        "create table IF NOT EXISTS " + DATABASE_TABLE_COUNT + " (" + SURAH_ID + " integer REFERENCES SURAH(SURAH_ID), "
        + VERSE_NAME + " TEXT not null," + COUNT + " INTEGER not null," + HIGHEST_VERSE_ID + 
        " INTEGER PRIMARY KEY NOT NULL);";


// Context of the Activity that is using this database

private final Context mCtx;
private DatabaseHelper mDbHelper;
private SQLiteDatabase mDb;

public MyDatabaseAdapter(Context ctx) {
    this.mCtx = ctx;
}


public MyDatabaseAdapter open() throws SQLException {
    mDbHelper = new DatabaseHelper(mCtx);
    mDb = mDbHelper.getWritableDatabase();
    return this;
}
// Database helper class
private static class DatabaseHelper extends SQLiteOpenHelper {

    DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase mDb) {
        mDb.execSQL(DATABASE_CREATE_SURAH);
        mDb.execSQL(DATABASE_CREATE_COUNT);
    }

    @Override
    public void onUpgrade(SQLiteDatabase mDb, int oldVersion, int newVersion) {
        if (newVersion > oldVersion)
        {
            Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                    + newVersion + ", which will destroy all old data");
            mDb.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_SURAH);
            mDb.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_COUNT);
            onCreate(mDb);
        }
        else
        {
            mDb.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_SURAH);
            mDb.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_COUNT);

        }
    }
}


public void updatecount(String c)
{
    mDb = mDbHelper.getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put(COUNT, c);
    String[] whereArgs ={null};
    mDb.update(DATABASE_TABLE_COUNT, cv, "HIGHEST_VERSE_ID =? ", whereArgs);    

}



/**
 * Close database
 */
public void close() {
    mDbHelper.close();
}


public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub

}
}

我的问题是logcat说我没有计数列

这是logcat上的错误

11-25 13:41:42.213: E/SQLiteLog(16293): (1) no such column: count
11-25 13:41:42.223: D/AndroidRuntime(16293): Shutting down VM
11-25 13:41:42.223: W/dalvikvm(16293): threadid=1: thread exiting with uncaught exception (group=0xb1a30ba8)
11-25 13:41:42.323: D/dalvikvm(16293): GC_FOR_ALLOC freed 28K, 3% free 4507K/4612K, paused 55ms, total 59ms
11-25 13:41:42.333: E/AndroidRuntime(16293): FATAL EXCEPTION: main
11-25 13:41:42.333: E/AndroidRuntime(16293): Process: com.aino.hafazan, PID: 16293
11-25 13:41:42.333: E/AndroidRuntime(16293): android.database.sqlite.SQLiteException: no such column: count (code 1): , while compiling: UPDATE count SET count=? WHERE HIGHEST_VERSE_ID =?
11-25 13:41:42.333: E/AndroidRuntime(16293):    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)

当我将数据库信息从ddms data/data/database/surah传输到sqlite expert personal时,应该命名为count的列将更改为countinteger。我完全不知道为什么它会改为countinteger bcs,我已经将它设置为mydatabaseadapter上的count。请帮帮我。

看起来您应该有一个空间:

... COUNT + " INTEGER not null," ...

但是,在第一次创建表时,可能没有空间。您可能需要删除表/清除应用程序数据,然后重试。

清理项目,并确保创建表
count
字符串中的
count
和关键字
integer
之间有空格。记录该字符串以确保。