нет такой ошибки имени столбца

1

Я определил имя столбца. но я сталкиваюсь с этой ошибкой. Я все проверил. Я не могу найти причину этой ошибки.

 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")));

              }
Теги:

1 ответ

1
Лучший ответ

Проблема в том, что

/* 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\")");
  • 0
    Благодарю. но число и значение в VALUES являются переменной, а не значением.
  • 0
    В этом случае вам нужно вывести их из строки, и не забудьте правильно их избежать.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню