Я определил имя столбца. но я сталкиваюсь с этой ошибкой. Я все проверил. Я не могу найти причину этой ошибки.
try {
myDB = this.openOrCreateDatabase("DatabaseName", MODE_PRIVATE, null);
/* Create a Table in the Database. */
myDB.execSQL("CREATE TABLE IF NOT EXISTS "
+ TableName
+ " (" +
"name TEXT, " +
"number TEXT" +
");"
);
/* Insert data to a Table*/
myDB.execSQL("INSERT INTO "
+ TableName
+ "(name,number)"
+ " VALUES (name,number)");
// retrieve data from database
Cursor c = myDB.rawQuery("SELECT * FROM " + TableName , null);
// Check if our result was valid.
c.moveToFirst();
while(c.moveToNext())
{
Log.i("error",c.getString(0));
Log.i("error",c.getString(1) );
contactname.add(c.getString(c.getColumnIndex("name")));
contactnumber.add(c.getString(c.getColumnIndex("number")));
}
Проблема в том, что
/* Insert data to a Table*/
myDB.execSQL("INSERT INTO "
+ TableName
+ "(name,number)"
+ " VALUES (name,number)");
пытается вставить имя, номер, которые оба идентифицируются как имена столбцов, поскольку они не являются строками. Вы должны вставить его так:
/* Insert data to a Table*/
myDB.execSQL("INSERT INTO "
+ TableName
+ "(name, number)"
+ " VALUES (\"name\",\"number\")");