2012-03-30 8 views
0
package nidhin.survey; 

import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class DatabaseHelper extends SQLiteOpenHelper { 

static final String TABLE = "mygrades"; 
static final String NAME = "name"; 
static final String VALUE1 = "value1"; 
static final String VALUE2 = "value2"; 
static final String VALUE3 = "value3"; 
static final String VALUE4 = "value4"; 
static final String VALUE5 = "value5"; 
static final String VALUE6 = "value6"; 
static final String VALUE7 = "value7"; 
static final String VALUE8 = "value8"; 
static final String VALUE9 = "value9"; 
static final String VALUE10 = "value10"; 
static final String VALUE11 = "value11"; 


DatabaseHelper(Context context) 
{ 
    super(context, "grades.sqlite", null, 1); 
} 

@Override 
public void onCreate(SQLiteDatabase db) 
{ 

    db.execSQL("CREATE TABLE " + TABLE + " (_id INTEGER PRIMARY KEY AUTOINCREMENT," + 
      VALUE1 + " TEXT, " + VALUE2 + " TEXT, " +VALUE3 + " TEXT, " + VALUE4 + " TEXT, " +VALUE5 + " TEXT, " +VALUE6 + " TEXT, " +VALUE7 + " TEXT, " +VALUE8 + " TEXT, " +VALUE9 + " TEXT, " +VALUE10 + " TEXT, " + 
      VALUE11 + " REAL);"); 

    ContentValues cv = new ContentValues(); 

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
{ 
    // TODO Auto-generated method stub 
    android.util.Log.w("mygrades", "Upgrading database, this will destroy all data"); 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE); 
    onCreate(db); 
} 

} 

私は問題があります(これは構文上の問題です)。私はSQLiteの助けを借りてアンドロイドでテーブルを作成しようとしています。 NAME列とVALUE1〜VALUE11列があります。私は、コードを実行しようとするしかし、私はLogcatで次のエラーを取得する:Androidでテーブルを初期化する際の問題

03-30 02:38:16.593: E/AndroidRuntime(693): java.lang.RuntimeException: Unable to start activity ComponentInfo{nidhin.survey/nidhin.survey.Database}: android.database.sqlite.SQLiteException: no such column: value1: , while compiling: SELECT _id, name, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11 FROM mygrades 

任意のアイデア?

+0

出力文字列onCreateを記録してください。 ...文字列s = "CREATE TABLE" + TABLE + "(_ID整数プライマリキー自動増加、" + VALUE1 + ...; android.util.Log.d( "mygrades"、s); –

答えて

1

初めてアプリを実行してからテーブルスキーマを変更しましたか?

これを実行した場合、その可能性が最も高いです。

与えられたコードを見ると、DBのバージョンが1に設定されているため、新しい列の追加でテーブルが再作成されませんでした(そのうちの1つは "value1"となります)。

super(context, "grades.sqlite", null, 1);からsuper(context, "grades.sqlite", null, 2);に変更して、アプリをもう一度実行しても問題はありません。

+0

を試してみてください..... –

+0

WORKED !!バークを感謝します! –

0

logcatが言うように:」android.database.sqlite.SQLiteException:いいえ、そのようなコラム:VALUE1" 、私は右のこのセグメントの後に行方不明の空白があり、あなたがテーブルを作成するときに問題があると思う:

" (_id INTEGER PRIMARY KEY AUTOINCREMENT," 
は、

" (_id INTEGER PRIMARY KEY AUTOINCREMENT, ". 

はそれを試してみてください。

と私はそれがこのようにすべきだと思います。

+0

これは動作しません.. –

+0

ああ、あなたのCREATE文に "NAME"列はありません。あなたはあなたの選択した文章でそれを使用しました。 – zionpi

+0

ええ、私はちょうどその時点で修正しましたが、エラーはまだ同じです –

関連する問題