テーブルをマップするための外部キーを作成する必要があります。基本的に、この外部はテーブルの主キーです。しかし、挿入ステートメントは問題を引き起こしています。その SQLite データベースです。主キーを持つテーブルは
db.execSQL("CREATE TABLE IF NOT EXISTS "
+ Main
+ "(ROWID integer primary key autoincrement NOT NULL,appln_date VARCHAR,appln_no VARCHAR,rupees VARCHAR,tenure VARCHAR,asset VARCHAR);");
外部キーを持つテーブルは
db.execSQL("CREATE TABLE IF NOT EXISTS "
+ Applicant
+ "(AppID integer primary key autoincrement, " +
"app_salutation VARCHAR,app_fname VARCHAR,app_mname VARCHAR,app_lname VARCHAR,app_door VARCHAR,app_street VARCHAR,app_building VARCHAR,app_area VARCHAR,app_post VARCHAR,app_tehsil VARCHAR,app_state VARCHAR,app_landmark VARCHAR,ROWID integer References "+Main+"(ROWID));");
挿入ステートメントは
openOrCreateDatabase();
createappinfo();
String insertString = "insert into " + Applicant
+ " Values(";
String inString = "";
for (int i =0; i < data.size(); i++) {
inString = inString + "\"" + data.get(i) + "\",";
}
inString = inString.substring(0, inString.length() - 1);
int row=db.rawQuery("select * from "+Main+";" ,null).getCount()+1;
insertString = insertString + row+"," +inString + ");";
System.out.println("** insert value ** " + insertString);
db.execSQL(insertString);
closeDatabase();
しかし、このコードはエラーを生成しています..
04-25 11:43:57.422: E/SQLiteLog(17825): (1) table applicanttable has 14 columns but 13 values were supplied