Android 没有这样的列名错误

Android 没有这样的列名错误,android,eclipse,sqlite,Android,Eclipse,Sqlite,我定义了列名。但我面对这个错误。我检查了所有的东西。我找不到这个错误的原因 try { myDB = this.openOrCreateDatabase("DatabaseName", MODE_PRIVATE, null); /* Create a Table in the Database. */ myDB.execSQL("CREATE TABLE IF NOT EXISTS " + TableName

我定义了列名。但我面对这个错误。我检查了所有的东西。我找不到这个错误的原因

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

您忘记了列是文本('需要字符串分隔符!)。尝试
+“值('name','number')”在插入命令中。谢谢。但值中的数字和值是变量而不是值。在这种情况下,您需要将它们从字符串中去掉,并且不要忘记正确地转义它们。