2011-12-08 26 views
0

データベースに何かを追加しようとしていますが、カラムが存在しないというエラーが表示され続けます。私はroot explorerを使用してテーブルを見て、それはidnameとなる最初の2つの列を作成するだけです。それは私が最初に持っていたものですが、いくつかの列を追加して、今度は新しいプログラムをインストールした後でさえエラーになります。sqliteカラムが作成されない

そのコンテンツプロバイダそれはここに

12-08 16:55:21.470: E/SQLiteDatabase(23282): Error inserting series=0 team_pos=0 handed=0 name=Allen, Andrew substitute=0 game=0 team=0 average=0 
12-08 16:55:21.470: E/SQLiteDatabase(23282): android.database.sqlite.SQLiteException: table bowlers_table has no column named series: , while compiling: INSERT INTO bowlers_table(series,team_pos,handed,name,substitute,game,team,average) VALUES (?,?,?,?,?,?,?,?) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:146) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:367) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.database.sqlite.SQLiteStatement.acquireAndLock(SQLiteStatement.java:253) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:111) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1737) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1610) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at com.tyczj.bowling.BowlersDB.insert(BowlersDB.java:102) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.content.ContentProvider$Transport.insert(ContentProvider.java:203) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.content.ContentResolver.insert(ContentResolver.java:721) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at com.tyczj.bowling.Bowlers.onDoneClick(Bowlers.java:58) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at java.lang.reflect.Method.invokeNative(Native Method) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at java.lang.reflect.Method.invoke(Method.java:491) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.view.View$1.onClick(View.java:2690) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.view.View.performClick(View.java:3122) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.view.View$PerformClick.run(View.java:12020) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.os.Handler.handleCallback(Handler.java:587) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.os.Handler.dispatchMessage(Handler.java:92) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.os.Looper.loop(Looper.java:132) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at android.app.ActivityThread.main(ActivityThread.java:4126) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at java.lang.reflect.Method.invokeNative(Native Method) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at java.lang.reflect.Method.invoke(Method.java:491) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 
12-08 16:55:21.470: E/SQLiteDatabase(23282): at dalvik.system.NativeStart.main(Native Method) 
12-08 16:55:21.470: E/AndroidRuntime(23282): FATAL EXCEPTION: main 
12-08 16:55:21.470: E/AndroidRuntime(23282): java.lang.IllegalStateException: Could not execute method of the activity 
12-08 16:55:21.470: E/AndroidRuntime(23282): at android.view.View$1.onClick(View.java:2695) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at android.view.View.performClick(View.java:3122) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at android.view.View$PerformClick.run(View.java:12020) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at android.os.Handler.handleCallback(Handler.java:587) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at android.os.Handler.dispatchMessage(Handler.java:92) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at android.os.Looper.loop(Looper.java:132) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at android.app.ActivityThread.main(ActivityThread.java:4126) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at java.lang.reflect.Method.invokeNative(Native Method) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at java.lang.reflect.Method.invoke(Method.java:491) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at dalvik.system.NativeStart.main(Native Method) 
12-08 16:55:21.470: E/AndroidRuntime(23282): Caused by: java.lang.reflect.InvocationTargetException 
12-08 16:55:21.470: E/AndroidRuntime(23282): at java.lang.reflect.Method.invokeNative(Native Method) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at java.lang.reflect.Method.invoke(Method.java:491) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at android.view.View$1.onClick(View.java:2690) 
12-08 16:55:21.470: E/AndroidRuntime(23282): ... 11 more 
12-08 16:55:21.470: E/AndroidRuntime(23282): Caused by: android.database.SQLException: Failed to insert row into content://com.tyczj.bowling.bowlersdb/bowlers_table 
12-08 16:55:21.470: E/AndroidRuntime(23282): at com.tyczj.bowling.BowlersDB.insert(BowlersDB.java:108) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at android.content.ContentProvider$Transport.insert(ContentProvider.java:203) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at android.content.ContentResolver.insert(ContentResolver.java:721) 
12-08 16:55:21.470: E/AndroidRuntime(23282): at  com.tyczj.bowling.Bowlers.onDoneClick(Bowlers.java:58) 
12-08 16:55:21.470: E/AndroidRuntime(23282): ... 14 more 

を重要私は

public void onDoneClick(View v){ 
    EditText et = (EditText)findViewById(R.id.editText1); 
    ContentValues contentValues = new ContentValues(); 
    contentValues.put(BowlersDB.NAME,et.getText().toString()); 
    contentValues.put(BowlersDB.HANDED,"0"); 
    contentValues.put(BowlersDB.TEAM,"0"); 
    contentValues.put(BowlersDB.SUB,"0"); 
    contentValues.put(BowlersDB.POSITION,"0"); 
    contentValues.put(BowlersDB.AVERAGE,"0"); 
    contentValues.put(BowlersDB.GAME,"0"); 
    contentValues.put(BowlersDB.SERIES,"0"); 
    et.setText(""); 
    getContentResolver().insert(BowlersDB.CONTENT_URI, contentValues); 

} 

を挿入し、私のデータベースは

@Override 
public Uri insert(Uri uri, ContentValues values) { 
    long rowID = db.insert(BOWLERS_TABLE,null, values); 
    if(rowID > 0){ 
     Uri _uri = ContentUris.withAppendedId(CONTENT_ID_URI_BASE,rowID); 
     getContext().getContentResolver().notifyChange(_uri,null); 
     return _uri; 
    }else{ 
     throw new SQLException("Failed to insert row into " + uri); 
    } 
} 

を挿入して、どのように私はテーブルを作成する場合であればコンテンツプロバイダ

private void createTables(SQLiteDatabase db){ 
     db.execSQL("CREATE TABLE " + BOWLERS_TABLE + "(" + ID + " integer primary key autoincrement, " + 
       NAME + " TEXT " + TEAM + " TEXT " + SUB + " TEXT " + POSITION + " TEXT " + AVERAGE + " TEXT " + GAME + " TEXT " + 
       SERIES + " TEXT " + HANDED + " TEXT);"); 
    } 

私はので、私は、これはあなたがデータベーステーブルを作成するSQLコードでは、あなたの「TEXT」の後にコンマを忘れてしまった

答えて

5

を作成していない理由を知らないこの方法の前のテーブルの束を行っています。

+0

ほんの少しのものがあります。 – tyczj

+0

まあ、カンマを忘れてしまったのですが(カンマを必要としない最後のものを除いて) – zmbq

+1

@tyczj '' TEXT ''でなければなりません。半分の方法で答えを満たすようにしてください – Merlin

関連する問題