Java 继续获取SQLiteException没有这样的列
我正在尝试更新数据库的某一行,我有以下代码Java 继续获取SQLiteException没有这样的列,java,android,database,sqlite,Java,Android,Database,Sqlite,我正在尝试更新数据库的某一行,我有以下代码 public String CREATE_QUERY = "CREATE TABLE " + TableData.TableInfo.TABLE_NAME + "(" + TableData.TableInfo.USER_NAME + " TEXT, " + TableData.TableInfo.USER_PIN + " TEXT, " + TableData.TableInfo.PARTNER_FIRST + "
public String CREATE_QUERY = "CREATE TABLE " + TableData.TableInfo.TABLE_NAME +
"(" + TableData.TableInfo.USER_NAME + " TEXT, " + TableData.TableInfo.USER_PIN +
" TEXT, " + TableData.TableInfo.PARTNER_FIRST + " Text, " + TableData.TableInfo.PARTNER_SECOND +
" TEXT, " + TableData.TableInfo.DATE + " TEXT, " + TableData.TableInfo.SIGNATURE_IMAGE + " BLOB, " +
TableData.TableInfo.PARTNER_SIGNATURE + " BLOB);";
我从中得到一个错误
ContentValues cv = new ContentValues();
DatabaseOperations DOP = new DatabaseOperations(ctx);
Cursor CR = DOP.getInformation(DOP);
CR.moveToLast();
SQLiteDatabase SQ = DOP.getWritableDatabase();
ContentValues args = new ContentValues();
args.put(TableData.TableInfo.USER_NAME, CR.getString(0));
args.put(TableData.TableInfo.PARTNER_FIRST, partner_name);
SQ.update(TableData.TableInfo.TABLE_NAME, args, "ROWID=?" + id, null);
这就是错误:
Caused by: android.database.sqlite.SQLiteException: no such column: partner_first (code 1): , while compiling: UPDATE reg_info SET user_name=?,partner_first=? WHERE ROWID=?54
这是我的桌子信息
public static abstract class TableInfo implements BaseColumns {
public static final String USER_NAME = "user_name";
public static final String USER_PIN = "user_pin";
public static final String PARTNER_FIRST = "partner_first";
public static final String PARTNER_SECOND = "partner_second";
public static final String DATE = "date";
//public static final String LOC = "location";
public static final String SIGNATURE_IMAGE = "signature_image";
public static final String PARTNER_SIGNATURE = "partner_signature";
public static final String DATABASE_NAME = "user_info";
public static final String TABLE_NAME = "reg_info";
}
我做错了什么?问题出在UPDATE语句中-您有一个连接的字符串,并且没有在此行上正确传递“WHERE”参数:
SQ.update(TableData.TableInfo.TABLE_NAME, args, "ROWID=?" + id, null);
只需这样做:
SQ.update(TableData.TableInfo.TABLE_NAME, args, "ROWID=" + id, null);
该错误具有误导性,因为SQL语句完全错误
卸载并重命名数据库。。这种情况经常发生在你
更改表名或数据库中的任何更改
是的,我将其声明为公共静态最终字符串PARTNER\u FIRST=“PARTNER\u FIRST”;旁注:
“ROWID=?”+id
不起作用。@njzk2-ah-right我会将其更改为Long。toString(id)您尝试卸载应用程序并重命名数据库?您是如何创建数据库的?您将“create table”字符串称为“create\u QUERY”,但它根本不是一个查询。。所以,请发布更多的代码,不幸的是仍然会出现相同的错误