обновление для Android - PullRequest
       2

обновление для Android

2 голосов
/ 09 марта 2012

сначала ... Я не хочу, чтобы это изменило мой ПЕРВИЧНЫЙ КЛЮЧ ....

и вот метод создания моей БД ....

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" ...

, но данные БД не заменили

почему это так?спасибо за вашу помощь!

Ответы [ 3 ]

1 голос
/ 09 марта 2012
 //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);
0 голосов
/ 09 марта 2012

_id является INTEGER

Ваш rowId должен быть изменен на целое число для обновления БД.

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

long -> int

0 голосов
/ 09 марта 2012

Вы получаете доступную для записи версию вашей базы данных, такую ​​как

SQLiteDatabase db = database.getWritableDatabase();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...