如何在Android中写入SQLite db中特定ROWID的条目
我想知道是否有可能在android中为特定的ROWID写入一个条目。这是我的创建条目代码如何在Android中写入SQLite db中特定ROWID的条目,android,android-sqlite,Android,Android Sqlite,我想知道是否有可能在android中为特定的ROWID写入一个条目。这是我的创建条目代码 public long createEntry(String cType, String siteName, String siteNum, String username, String pass) { ContentValues cv= new ContentValues(); cv.put(KEY_CTYPE,cType); cv
public long createEntry(String cType, String siteName, String siteNum,
String username, String pass) {
ContentValues cv= new ContentValues();
cv.put(KEY_CTYPE,cType);
cv.put(KEY_SNAME,siteName);
cv.put(KEY_SNUMB,siteNum);
cv.put(KEY_USRN,username);
cv.put(KEY_PASS,pass);
//cv.put(KEY_EMPTY,0);
return ourDatabase.insert(DATABASE_TABLE,null,cv);
}
这就是我创建表的方式
public void onCreate(SQLiteDatabase db) {
// db.execSQL("DROP TABLE IF EXISTS " +DATABASE_TABLE);
db.execSQL("CREATE TABLE "+ DATABASE_TABLE + "(" +
KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ KEY_CTYPE + " TEXT NOT NULL,"
+ KEY_SNAME + " TEXT NOT NULL,"
+ KEY_SNUMB + " TEXT NOT NULL,"
+ KEY_USRN + " TEXT NOT NULL,"
+ KEY_PASS + " TEXT NOT NULL,"
+ KEY_EMPTY + " INTEGER);"
);
/*for(int x=1;x<9;x++){
createEntry("Account"+ String.valueOf(x),"","","","");
}*/
}
public void onCreate(SQLiteDatabase db){
//db.execSQL(“如果存在删除表”+数据库_表);
db.execSQL(“创建表”+数据库表+”(“+
KEY_ROWID+“整数主键自动递增,”
+KEY_CTYPE+“文本不为空,”
+密钥\u SNAME+“文本不为空,”
+密钥\u SNUMB+“文本不为空,”
+键\u USRN+“文本不为空,”
+密钥传递+“文本不为空,”
+键_EMPTY+“INTEGER);”
);
/*对于(int x=1;x
假设我保存了6个帐户-用户删除了第5个。现在什么时候
用户添加了一个新帐户我希望它被写入ROWID=5而不是
7.–赫拉齐
您可以将行标记为已删除,而不是毫无理由地打开黑洞。然后,您可以更新“已删除”记录并删除“已删除”标志,而不是创建新记录。这样,ROWID将始终保持不变
或
您可以管理自己的ID字段。我认为在插入之前无法设置rowid。无论如何,您为什么要这样做?我有一些帐户要保存-总共有8个。如果我能够写入特定行,这将使我的工作更轻松,因为帐户1将保存在rowid=1中,依此类推。假设我有6个帐户要保存-and用户删除第5个。现在,当用户添加一个新帐户时,我希望它被写入ROWID=5而不是7。ROWID是系统字段,如果有办法实现这一点,我真的建议你不要这样做。你必须管理ID字段,只需在另一个不同于ROWID的帐户中进行。你能给出示例代码来帮助我吗?我很困惑!:(没有这方面的示例代码。这是您组织数据库的方式。如果您将记录标记为已删除,则应将其从您所做的所有其他选择中排除(其中[DeletedFlag]=0)。插入时,您将检查[DletedFlag]=1的记录,并对其进行修改,而不是插入并设置[DeletedFlag]=0。如果您管理自己的id字段,则必须检查整个表中的“孔”,并自行设置此id