2016-03-04 115 views
0

所以我的SQLiteINSERT INTO功能是以错误的顺序插入数据,即使我已经把contentValues以正确的顺序。SQLite Android没有插入数据

这是我的课:

public class UserInfo extends SQLiteOpenHelper { 

    private static final int DATABASE_VERSION = 2; 
    private static final String DB_TABLE_NAME = "usersData"; 
    private static final String USERNAME = "username"; 
    private static final String DETAILS = "details"; 
    public static final String DATABASE_NAME = "users.db"; 
    private static final String DICTIONARY_TABLE_CREATE = 
      "CREATE TABLE " + DB_TABLE_NAME + " (" + 
        USERNAME + " TEXT," + DB_ONE + " TEXT" + ")"; 

    public ReminderDB(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     Log.d("Database operations", "Database created"); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(DICTIONARY_TABLE_CREATE); 
     Log.d("Database operations", "Table created"); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE_NAME); 
     onCreate(db); 
    } 

    public void addReminder(String username, String reminders){ 
     SQLiteDatabase sqLiteDatabase = this.getWritableDatabase(); 
     ContentValues contentValues = new ContentValues(); 
     contentValues.put(USERNAME, username); 
     contentValues.put(DETAILS, details); 
     sqLiteDatabase.insert(DB_TABLE_NAME, null, contentValues); 
    } 
} 

LogCat错误堆栈:

android.database.sqlite.SQLiteException: table userData has no column named username (code 1): , while compiling: INSERT INTO userData(details,username) VALUES (?,?) 
+1

请参阅本教程:http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/ –

+0

我建议你开始使用'greenDAO'忘记关于手动处理'SQL'。 (我知道它是有问题的) – giannisf

+0

您的第二列名称是由创建表查询中的变量'DB_ONE'创建的。我在班上看不到那个变量。它的价值是什么? –

回答

1

android.database.sqlite.SQLiteException:表用户数据没有列 名为username(代码1): ,同时编译:INSERT INTO userData(details,username)VALUES(?,?)

在本地数据库中有一个名为"userData"的表。但没有名为“用户名”的列。

不要

private static final String DB_TABLE_NAME = "usersData"; 

private static final String DB_TABLE_NAME = "userData"; 

卸载&再次运行

经过Android SQLite Database Tutorial