【发布时间】:2015-10-28 06:37:49
【问题描述】:
我正在创建一个表并在本地数据库 android 中使用插入或替换 sql,但它给了我 错误:
*
表employeeTable 没有名为activationCode (code 1): 的列,编译时:插入或替换成 员工表(激活码、用户名、用户类型、lastSeen)值 ('6131313313' , 'testingcheck' , 'Employer' , 'Tue Oct 27 10:04:36 GMT+05:30 2015');
*
我的创建表代码:
sql = "CREATE TABLE " + EMPLOYEE_TABLE + "(" + COMMON_ID_COLUMN + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ ACTIVATION_CODE_COLUMN + "TEXT ," + USER_NAME_COLUMN + "TEXT ," + USER_TYPE_COLUMN + "TEXT,"+LAST_SEE_COLUMN + "Text);";
db.execSQL(sql);
}
我的插入或替换代码:
public void insertEmployeeDetails(String activationCode1 , String userName , String userType , String lastSeen) {
String sql1 = "insert or replace into " + EMPLOYEE_TABLE + "(" + ACTIVATION_CODE_COLUMN + " , " + USER_NAME_COLUMN + " , " +
USER_TYPE_COLUMN +" , "+ LAST_SEE_COLUMN + ")" + "VALUES ('" +activationCode1 +"' , '" + userName + "' , '" + userType + "' , '"+ lastSeen + "');";
getWritableDatabase().execSQL(sql1);
}
和回调代码:
myDbHelper.insertEmployeeDetails(employerConstants.activationCode,employerConstants.userName,
employerConstants.userType , employerConstants.lastSeenon);
列激活码存在,但无法找出导致问题的原因?
【问题讨论】:
-
卸载应用并重新安装 :)
-
@Amy 为什么?向我们展示您的表结构?
-
@DegenSharew:你说的表结构是什么意思?
-
@young_08 你确定你的表创建没有任何问题吗?因为您创建表查询而询问应该在
column_name和datatype之间包含空格,我在发布的代码中没有看到.. -
@young_08 我想这就是问题所在......只需在列名和数据类型(如
ACTIVATION_CODE_COLUMN + "<space> TEXT ,")之间放置空格,对于创建 sql 中的其他人也是如此。
标签: android android-sqlite sqliteopenhelper