我正在尝试使用replace语句,但仅用于替换特定列中的数据,但是我正在使用的查询正在替换所有列中的值。
public boolean insertDataTable(String FileNumber, String Areas, String Level, String ProjectCode, String Year, String Department, String University, String Address, String City, String State, String Region, String UserId) {
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
String query = " REPLACE INTO DataTable (FileNumber, Areas, Level, ProjectCode, Year, Department, University, Address, City, State, Region, UserId) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)";
sqLiteDatabase.execSQL(query,new String[]{FileNumber, Areas, Level, ProjectCode, Year, Department, University, Address, City, State, Region, UserId});
sqLiteDatabase.close();
return true;
}
我有13列的表格,我试图不更新最后一列的值。这是我正在使用的代码。
答案 0 :(得分:0)
我认为您误解了REPLACE
语句的目的。
它与UPDATE
不同。
阅读上面的链接,您将看到REPLACE
:
插入新行或删除与新行冲突的行 然后添加新行。
我相信您真正想要的是更新表中的一行。这样做:
String query = "UPDATE DataTable SET " +
"FileNumber = ?, Areas = ?, Level = ?, ProjectCode = ?, Year = ?, Department = ?, " +
"University = ?, Address = ?, City = ?, State = ?, Region = ?, UserId = ? " +
"WHERE ......";
在语句末尾使用WHERE
子句来指定要更新的行,否则表的所有行将被更新。