私は保険カードを保存できるアプリを書いています。ユーザーが情報を入力し、データベースに保存されています。アプリは以前のインシデントのリストで起動します。これが問題の発生場所です。それは私に "driverone"の列が存在しないことを伝えています。SQLiteが列が存在しないことを伝えています
私はプログラミングが新しく、SQLiteは非常に新しいので、すべてのアドバイスは大歓迎です。私はこのトピックがここまで来ていることを知っています。私はその回答を検索して、何が起こっているのか把握できません。ここで
は、私は私のデータベースを定義するコードです:私は私のデータベースを作成する場所
public class DbSchema {
public static final class CrashTable {
public static final String NAME = "crash";
public static final class Cols {
public static final String UUID = "uuid";
//TODO: "column 'driverone' does not exist...fix it
public static final String DRIVER_ONE = "driverone";
public static final String INSCO = "insco";
public static final String POLICY = "policy";
public static final String PHONE = "phone";
public static final String EMAIL = "email";
//public static final String DRIVER_TWO = "driver_two";
//public static final String INSURANCECOMPANY_TWO = "insurancecompany_two";
//public static final String POLICYNUMBER_TWO = "policynumber_two";
//public static final String TELEPHONENUMBER_TWO = "telephonenumber_two";
//public static final String EMAILADDRESS_TWO = "emailaddress_two";
//public static final String DATE = "date";
}
}
}
そして、ここです:
private static final String CRASH_TABLE_CREATE_STATEMENT = "create table " + CrashTable.NAME + "(" +
" _id integer primary key autoincrement, " +
CrashTable.Cols.UUID + ", " +
//CrashTable.Cols.ID + " integer primary key autoincrement, " +
CrashTable.Cols.DRIVER_ONE + ", " +
CrashTable.Cols.INSCO + ", " +
CrashTable.Cols.POLICY + ", " +
CrashTable.Cols.PHONE + ", " +
CrashTable.Cols.EMAIL + ", " +
");";
し、エラーが発生した場所です。
public class CrashCursorWrapper extends CursorWrapper{
public CrashCursorWrapper(Cursor cursor) {
super(cursor);
}
public Crash getCrash() {
String uuidString = getString(getColumnIndexOrThrow(CrashTable.Cols.UUID));
String driverone = getString(getColumnIndexOrThrow(CrashTable.Cols.DRIVER_ONE)); <------ Error here
String insco = getString(getColumnIndexOrThrow(CrashTable.Cols.INSCO));
String policy = getString(getColumnIndexOrThrow(CrashTable.Cols.POLICY));
String phone = getString(getColumnIndexOrThrow(CrashTable.Cols.PHONE));
String email = getString(getColumnIndexOrThrow(CrashTable.Cols.EMAIL));
//String theirName = getString(getColumnIndex(CrashTable.Cols.DRIVER_TWO));
//String theirInsCo = getString(getColumnIndex(CrashTable.Cols.INSURANCECOMPANY_TWO));
//String theirPolicy = getString(getColumnIndex(CrashTable.Cols.POLICYNUMBER_TWO));
//String theirTelephone = getString(getColumnIndex(CrashTable.Cols.TELEPHONENUMBER_TWO));
//String theirEmail = getString(getColumnIndex(CrashTable.Cols.EMAILADDRESS_TWO));
//long date = getLong(getColumnIndex(CrashTable.Cols.DATE));
Crash crash = new Crash(UUID.fromString(uuidString));
crash.setYourName(driverone);
crash.setInsCo(insco);
crash.setPolicy(policy);
crash.setTelephone(phone);
crash.setEmail(email);
//crash.setTheirName(theirName);
//crash.setInsCo_Two(theirInsCo);
//crash.setPolicy_Two(theirPolicy);
//crash.setTelephone_Two(theirTelephone);
//crash.setEmail_Two(theirEmail);
// crash.setDate(new Date(date));
return crash;
}
}
を
参考のために私のログです:
06-22 10:59:49.645 31983-31983/com.bignerdranch.android.crashcourse E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.bignerdranch.android.crashcourse, PID: 31983
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bignerdranch.android.crashcourse/com.bignerdranch.android.crashcourse.CrashListActivity}: java.lang.IllegalArgumentException: column 'driverone' does not exist
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.IllegalArgumentException: column 'driverone' does not exist
at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:333)
at android.database.CursorWrapper.getColumnIndexOrThrow(CursorWrapper.java:87)
at com.bignerdranch.android.crashcourse.database.CrashCursorWrapper.getCrash(CrashCursorWrapper.java:21)
at com.bignerdranch.android.crashcourse.CrashShop.getCrashes(CrashShop.java:53)
at com.bignerdranch.android.crashcourse.CrashListFragment.updateUI(CrashListFragment.java:110)
at com.bignerdranch.android.crashcourse.CrashListFragment.onCreateView(CrashListFragment.java:46)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1988)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1080)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:754)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1653)
at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:364)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:602)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)
at android.app.Activity.performStart(Activity.java:6253)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
'CREATE'ステートメントでエラーがスローされる(末尾のカンマ「CrashTable.Cols.EMAIL +」、「+」を削除します) – antonio