【问题标题】:no such column name error没有这样的列名错误
【发布时间】:2015-09-20 15:59:37
【问题描述】:

我定义了列名。但我遇到了这个错误。我检查了每一件事。我找不到这个错误的原因。

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

              }

【问题讨论】:

  • 您忘记了您的列是 TEXT(需要 ' 字符串分隔符!)。在 INSERT 命令中尝试+ " VALUES ('name', 'number')");

标签: android eclipse sqlite


【解决方案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\")");

【讨论】:

  • 谢谢。但是 VALUES 中的数字和值是变量而不是值。
  • 在这种情况下,您需要将它们从字符串中取出,并且不要忘记正确转义它们。
猜你喜欢
  • 1970-01-01
  • 2014-09-23
  • 2011-11-11
  • 2017-02-09
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 2016-06-10
  • 1970-01-01
相关资源
最近更新 更多