我想创建一个更新函数,该函数将根据行的INTEGER PRIMARY KEY更改数据库中各列(整个行)的条目-如果可能的话。我有一个find函数,它将查找数据库的详细信息并将其加载到EditText字段中以进行编辑/更新。查找按钮(调用查找处理程序)将内容加载到可以更改/编辑的EditText字段中,但是当按下按钮以更新编辑的条目时,整个数据库将被更改的EditText条目覆盖。为了明确起见,我想更改数据库中包含端口,名称和IP地址的一行,更新该单个条目并将其放回数据库中,而不会覆盖我的所有数据库条目(目前正在发生这种情况)。我无法使用原始的未编辑形式在data / data / {package name} ...文件夹中查看数据库,因为我使用的是旧的Samsung手机(其中不包含某些未知的database.db指出“用于以下原因运行:无法设置功能...”消息,用于调试/运行该应用程序,并且我使用的PC没有足够的RAM来支持虚拟设备。任何帮助,建议或示例将不胜感激。我是Android应用程序开发和Java的新手,所以如果问题很明显或很简单,请原谅我。这是创建表的方式: 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(); } }该发现的功能如下: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;}
添加回答
举报
0/150
提交
取消