0

csv ファイルから値を読み取っていますが、正確に読み取ることができます。ただし、これらの値をシステム データベースのテーブルに書き込もうとすると、テーブルに 1 つの列が存在しないというエラーが表示されます。

Logcat エラー:

E/SQLiteLog(318):      (1) table hospital has no column named zip

E/SQLiteDatabase(318): Error inserting zip=36301 avgCharges=20313 avgPayment=4895 _id=10001 address=1108 ROSS CLARK CIRCLE providerName=SOUTHEAST ALABAMA MEDICAL CENTER state=AL procedure=057 - DEGENERATIVE NERVOUS SYSTEM DISORDERS W/O MCC discharges=38 city=DOTHAN

E/SQLiteDatabase(318): android.database.sqlite.SQLiteException: table hospital has no column named zip (code 1): , while compiling: INSERT INTO hospital(zip,avgCharges,avgPayment,_id,address,providerName,state,procedure,discharges,city) VALUES (?,?,?,?,?,?,?,?,?,?)

E/SQLiteDatabase(318):  at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)

テーブルクエリの作成: (すべてのフィールドはテスト用に TEXT になっています)

query = "CREATE TABLE hospital(_id TEXT PRIMARY KEY, procedure TEXT, providerName TEXT,     address TEXT, city TEXT, state TEXT, zip TEXT, discharges TEXT, avgCharges TEXT, avgPayment TEXT)";

db.execSQL(query);

列タイプの不一致はないと確信しています。ZIP という名前の列が見つからないと表示されます。ここで何が起こっているのかわかりません。

値を挿入するクエリ: values.put("_id", Hospital.get_id());

    values.put("procedure", hospital.get_procedure());
    values.put("providerName", hospital.get_providerName());
    values.put("address", hospital.get_address());
    values.put("city", hospital.get_city());
    values.put("state", hospital.get_state());
    values.put("zip", hospital.get_zip());
    values.put("discharges", hospital.get_discharges());
    values.put("avgCharges", hospital.get_avgCharges());
    values.put("avgPayment", hospital.get_avgPayment());

    db.insert(TABLE_NAME, null, values);

ここで何ができるかについてのアイデアはありますか?前もって感謝します!

4

2 に答える 2

0

スキーマが変更されるたびにテーブルを削除および追加するには、onUpgrade メソッドを実装する必要があります。https://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html#onUpgrade(android.database.sqlite.SQLiteDatabase,%20int,%20int)を見ることができます。

于 2013-08-12T21:45:19.380 に答える