Друзья!
Я пытаюсь заполнить простую базу данных из XML-файла, но получаю ошибку в заголовке, и, как написано в журнале, значения в столбцах расположены в неправильном порядке.
Я не могу понять, где проблема, поэтому я прошу вашей помощи. Код ниже.
Большое спасибо.
XML-файл:
<?xml version="1.0" encoding="utf-8"?>
<cards>
<record path="R.mipmap.ot1" woman = "wfew" man = "qwe"/>
<record path="R.mipmap.ot2" woman = "rewr" man = "dwd"/>
</cards>
DBhelper класс:
class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
super(context, "myDB", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d(LOG_TAG, "--- onCreate database ---");
db.execSQL("create table mytable ("
+ "id integer primary key autoincrement,"
+ "path text,"
+ "woman text," + "man text" + ");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Добавление данных в базу данных:
Resources res = this.getResources();
ContentValues values = new ContentValues();
XmlResourceParser _xml = res.getXml(R.xml.cardslist);
try {
int eventType = _xml.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if ((eventType == XmlPullParser.START_TAG)
&& (_xml.getName().equals("record"))) {
String path = _xml.getAttributeValue(0);
String woman = _xml.getAttributeValue(1);
String man = _xml.getAttributeValue(2);
values.put("path", path);
values.put("woman", woman);
values.put("man", man);
db.insert("mytable", null, values);
Log.d(LOG_TAG, "success");
}
eventType = _xml.next();
}
}
// Catch errors
catch (XmlPullParserException e) {
Log.e("Test", e.getMessage(), e);
} catch (IOException e) {
Log.e("Test", e.getMessage(), e);
} finally {
// Close the xml file
_xml.close();
}
dbHelper.close();
}
Ошибка из журнала:
E/SQLiteLog: (1) table mytable has no column named man
E/SQLiteDatabase: Error inserting path=dwd woman=R.mipmap.ot2 man=rewr
android.database.sqlite.SQLiteException: table mytable has no column named man (code 1): , while compiling: INSERT INTO mytable(path,woman,man) VALUES (?,?,?)