android sqlite更新

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

一开始…我不想让它改变我的主键

下面是我的DB的创建方法

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);