我想創(chuàng)建一個(gè)更新函數(shù),該函數(shù)將根據(jù)行的INTEGER PRIMARY KEY更改數(shù)據(jù)庫中各列(整個(gè)行)的條目-如果可能的話。我有一個(gè)find函數(shù),它將查找數(shù)據(jù)庫的詳細(xì)信息并將其加載到EditText字段中以進(jìn)行編輯/更新。查找按鈕(調(diào)用查找處理程序)將內(nèi)容加載到可以更改/編輯的EditText字段中,但是當(dāng)按下按鈕以更新編輯的條目時(shí),整個(gè)數(shù)據(jù)庫將被更改的EditText條目覆蓋。為了明確起見,我想更改數(shù)據(jù)庫中包含端口,名稱和IP地址的一行,更新該單個(gè)條目并將其放回?cái)?shù)據(jù)庫中,而不會(huì)覆蓋我的所有數(shù)據(jù)庫條目(目前正在發(fā)生這種情況)。我無法使用原始的未編輯形式在data / data / {package name} ...文件夾中查看數(shù)據(jù)庫,因?yàn)槲沂褂玫氖桥f的Samsung手機(jī)(其中不包含某些未知的database.db指出“用于以下原因運(yùn)行:無法設(shè)置功能...”消息,用于調(diào)試/運(yùn)行該應(yīng)用程序,并且我使用的PC沒有足夠的RAM來支持虛擬設(shè)備。任何幫助,建議或示例將不勝感激。我是Android應(yīng)用程序開發(fā)和Java的新手,所以如果問題很明顯或很簡(jiǎn)單,請(qǐng)?jiān)徫?。這是創(chuàng)建表的方式: public static final String TABLE_USER = "User"; public static final String COL_ID = "_id"; public static final String COLUMN_ID = "UserIP"; public static final String COLUMN_NAME = "UserName"; public static final String COLUMN_PORT = "UserPort"; public void onCreate(SQLiteDatabase db) { String CREATE_USER_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_USER + "(" + COL_ID + " INTEGER PRIMARY KEY, " + COLUMN_PORT + " INTEGER, " + COLUMN_NAME + " TEXT, " + COLUMN_ID + " TEXT " + ")"; try { db.execSQL(CREATE_USER_TABLE); }catch (SQLException e) { e.printStackTrace(); } }該發(fā)現(xiàn)的功能如下:public User findHandler(String username, String IP){ String query = "Select * FROM " + TABLE_USER + " WHERE " + COLUMN_NAME + " = '" + username + "'" + " and " + COLUMN_ID + " = '" + String.valueOf(IP) + "'"; SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(query, null); User user = new User(); if (cursor.moveToFirst()) { cursor.moveToFirst(); user.setUserPort(Integer.parseInt(cursor.getString(1))); user.setUserName(cursor.getString(2)); user.setID(cursor.getString(3)); cursor.close(); //Log.d("Message1", msg); } else { user = null; } db.close(); return user;}
添加回答
舉報(bào)
0/150
提交
取消