【发布时间】:2016-09-06 07:51:08
【问题描述】:
我有一个 CARDNUM 列,我试图在名为 TOTALCOUNT 的表中增加 +1。应用程序因“SET”附近的语法错误而崩溃
这是我的 INSERT 语句:
db.execSQL("INSERT INTO "+ DBContract.DBEntry.TABLE_NAME_TOTALCOUNT+" SET "+ DBContract.DBEntry.COLUMN_NAME_CARDNUM + "="+ DBContract.DBEntry.COLUMN_NAME_CARDNUM+"+1");
我做错了什么?
private static final String SQL_CREATE_CARDNUM =
"CREATE TABLE IF NOT EXISTS "+ DBContract.DBEntry.TABLE_NAME_TOTALCOUNT +
"( "+ DBContract.DBEntry.COLUMN_NAME_COUNTID +
" INTEGER PRIMARY KEY UNIQUE , "+
DBContract.DBEntry.COLUMN_NAME_CARDNUM +
" INTEGER DEFAULT 1);";
// Push the database data to the RecyclerView
public List<UserData> getDataFromDB(){
List<UserData> modelList = new ArrayList<>();
String query = "SELECT *,(SELECT " + DBContract.DBEntry.COLUMN_NAME_CARDNUM +
" from " + DBContract.DBEntry.TABLE_NAME_TOTALCOUNT +") from "
+ DBContract.DBEntry.TABLE_NAME_USERINPUTS +";";
SQLiteDatabase db = this.getReadableDatabase();
db.beginTransaction();
Cursor cursor = db.rawQuery(query, null);
try {
if (cursor.moveToFirst()) {
do {
UserData userData = new UserData();
userData.setTodo(cursor.getString(1));
userData.setNote1(cursor.getString(2));
userData.setNote2(cursor.getString(3));
userData.setDuedate(cursor.getString(4));
userData.setDuetime(cursor.getString(5));
userData.setTimestamp(cursor.getLong6));
userData.setCardnum(cursor.getInt(7));
modelList.add(0, userData);
} while (cursor.moveToNext());
}
} finally {
if(cursor !=null && !cursor.isClosed()){
cursor.close();
}
}
db.setTransactionSuccessful();
db.endTransaction();
return modelList;
}
CARDNUM 的 Logcat 显示“(SELECT cardnum from totalcount)=0。
【问题讨论】:
-
据我所知,您不能在 INSERT 中使用“set”。它在更新中。如果我错了,请纠正我。
-
好的,但是没有更新。
-
查看@Hello World 的回答
-
请参考:w3schools.com/sql/sql_insert.asp.. 您的插入查询错误..!!
-
@janki gadhiya 谢谢,我会检查一下...但请告诉我具体出了什么问题!
标签: android sqlite android-sqlite insert-into