2012-03-09 90 views
2

在第一......我不希望它改变我的PRIMARY KEY ....的Android源码更新

和这里的创建我的数据库的方法....

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

两个2种方法后续工作前添加一行精......但是,当我想换行的价值...... 我用这个方法

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

它运行正常,正确的价值观「做」获得此方法...

但分贝的数据并没有取代

这是为什么?

感谢您的帮助!

+0

我觉得你的问题是与whereclause你给。通过从你的方法返回一个int值来检查。 – 2012-03-09 12:45:30

+0

你确定'rowId'是正确的吗? – Caner 2012-03-09 12:48:13

+0

'db.update'返回什么? – Caner 2012-03-09 12:50:33

回答

0

_id是INTEGER

你的ROWID应修改为整数更新数据库。

public void update(long rowId,String httporS, String IP,String Port,String userName,String password) 

长 - > INT

0

你得到你的数据库像

SQLiteDatabase db = database.getWritableDatabase(); 

也可写的版本,你可以分享你的错误,而试图更新的行?

+0

我已经使用这个.... SQLiteDatabase db = database.getWritableDatabase(); 并且没有错误信息.... – 2012-03-09 12:48:45

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