我不太确定使用'用户名'是否合适?作为我选择检索其他数据而不是使用ID。仅供参考,我的用户名是唯一的,因为没有任何其他用户具有相同的用户名。我这样做是因为我不确定如何使用或调用表中的id。 我收到此错误:
CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
我有一个带有以下代码的DatabaseAdapter.java:
public Cursor getData(String username){
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cur = db.query(TABLE_PROFILE, COLUMNS_PROFILE, " username=?", new String[]{username}, null, null, null, null );
if (cur != null){
cur.moveToFirst();
}
return cur;
}
使用EditProfileFragment.java:
dbAdapter = new DatabaseAdapter(getActivity());
dbAdapter = dbAdapter.open();
un = getArguments().getString("username");
Cursor cur = dbAdapter.getData(un);
String password = cur.getString(cur.getColumnIndexOrThrow(DatabaseAdapter.KEY_PASSWORD));
String age = cur.getString(cur.getColumnIndexOrThrow(DatabaseAdapter.KEY_AGE));
String weight = cur.getString(cur.getColumnIndexOrThrow(DatabaseAdapter.KEY_WEIGHT));
String height = cur.getString(cur.getColumnIndexOrThrow(DatabaseAdapter.KEY_HEIGHT));
String gender= cur.getString(cur.getColumnIndexOrThrow(DatabaseAdapter.KEY_GENDER));
我在我的日志中获取String un,表示我的用户名已成功通过。我用数据从光标检索数据模糊,请提前帮助并感谢您的帮助。
答案 0 :(得分:2)
试试这个答案
public Cursor getData(String username){
SQLiteDatabase db = dbHelper.getReadableDatabase();
String sql="select * from " + tableName + " where username =?";
Cursor cursor=database.rawQuery(sql,new String{username});
if (cursor != null)
{ cursor.moveToFirst();}
return cursor;
}
答案 1 :(得分:0)
EditText username;
String S;
S = username.getText().toString();
现在运行此查询
String selectQuery = "SELECT* FROM **TABLE NAME** WHERE username=S ";
Cursor c = db.rawQuery(selectQuery, new String[] { username });
if (c.moveToFirst()) {
temp_address = c.getString(0);
}
c.close();
答案 2 :(得分:0)
这是一小段代码。在这里,我根据用户名/电子邮件和密码验证用户是否存在。我知道这不是完整的解决方案,但可以指导您正确的方向(不知何故)。
2015-05-20
答案 3 :(得分:0)
String name;
name = username.getText()。toString();
"从yourTable中选择*,其中username ='" + name +"'"
运行此查询。我希望它能帮到你..!