android sqlite更新
一开始…我不想让它改变我的主键 下面是我的DB的创建方法android sqlite更新,android,sqlite,Android,Sqlite,一开始…我不想让它改变我的主键 下面是我的DB的创建方法 public void onCreate(SQLiteDatabase db) { String DATABASE_CREATE_TABLE = "create table userData (" + "_id INTEGER PRIMARY KEY AUTOINCREMENT," + "HTTPorS TEXT," + "IPHostNam
public void onCreate(SQLiteDatabase db) {
String DATABASE_CREATE_TABLE =
"create table userData ("
+ "_id INTEGER PRIMARY KEY AUTOINCREMENT,"
+ "HTTPorS TEXT,"
+ "IPHostName TEXT,"
+ "port TEXT,"
+ "userName TEXT,"
+ "password TEXT,"
+ "saveOption TEXT"
+ ");";
db.execSQL(DATABASE_CREATE_TABLE);
}
这就是我在其中添加行的方式
public long create(String HTTPorS, String IPHostName, String port, String userName, String password, String saveOption) {
ContentValues args = new ContentValues();
args.put("HTTPorS", HTTPorS);
args.put("IPHostName", IPHostName);
args.put("port", port);
args.put("userName", userName);
args.put("password", password);
args.put("saveOption", saveOption);
return db.insert("userData", null, args);
}
这两种方法在工作前都可以使用…但是当我想更改行的值时。。。
我用这个方法
public void update(long rowId,String httporS, String IP,String Port,String userName,String password) {
ContentValues args = new ContentValues();
args.put("HTTPorS", httporS);
args.put("IPHostName", IP);
args.put("port", Port);
args.put("userName", userName);
args.put("password", password);
args.put("saveOption", "no use");
db.update("userData",
args,
"_id=" + rowId,
null
);
}
它正常运行,并且在这个方法中得到正确的值“do”
但db的数据并没有取代
为什么呢
谢谢你的帮助 你的数据库有可写版本吗
SQLiteDatabase db = database.getWritableDatabase();
_id是一个整数 您的rowId应修改为整数,以更新数据库
public void update(long rowId,String httporS, String IP,String Port,String userName,String password)
long->int我想你的问题在于你给出的where子句。通过从您的方法返回一个int值来检查这一点。您确定
rowId
正确吗?db.update
返回什么?我已经使用了这个。。。。SQLiteDatabase db=database.getWritableDatabase();而且没有错误消息。。。。
//decleration
EventDataSQLHelper eventsData;
SQLiteDatabase dbx ;
SQLiteDatabase rdbx;
ContentValues values;
//onCreate
dbx = eventsData.getWritableDatabase();
rdbx = eventsData.getReadableDatabase();
values=new ContentValues();
//updated values
values2.put("clumnname1", updatedvalue1);
values2.put("clumnname2", updatedvalue2);
values2.put("clumnname3", updatedvalue3);
values2.put("clumnname4", updatedvalue4);
values2.put("clumnname5", updatedvalue5);
...
...
...
//delete query
//specify the id of the record to be updated
dbx.update("tablename", values2, "id="? , null);