您好我在android中开发注册屏幕,我需要通过输入存储数据库的用户名和密码从我的数据库中获取id并将其作为int.First用户将注册然后输入类型名称并传递并登录。在我的数据库中有很多原始的像:id用户名密码。我想获得输入用户名和密码的ID。例如:id:1用户名:传递:一个id:2,用户名:B传递:b ..当用户A进入他的名称和传递和登录我应该得到他的ID然后使其类型,如果你没有东西请留下评论谢谢 我试图尝试,但我不知道它是否正确以及如何开发它:
EditText name;
String Username = name.getText().toString();
Cursor c = database.rawQuery("SELECT * FROM " +LOGIN_TABLE + " where username = '"+Username+"'", null);
并在此代码中登录表是我的表名?
答案 0 :(得分:1)
从数据库中获取id:
String id = c.getString(1);//c is object of cursor
然后使用 Integer.parseInt()
转换为整数int integerId = Integer.parseInt(id);
答案 1 :(得分:1)
如果您正在使用数据库的内置id字段,我建议稍微更改一下查询。
我发现如果我没有在create table语句中定义_id行,我就不会在Select *语句中得到它。
Cursor c = database.rawQuery("SELECT * FROM " +LOGIN_TABLE + " where username = '"+Username+"'", null);
可以切换到:
Cursor c = database.rawQuery("SELECT _id, * FROM " +LOGIN_TABLE + " where username = '"+Username+"'", null);
之后,当您从光标获取它时,使用它来查找id:
Long id = c.getLong(c.getColumnIndex("_id"));
修改强>
在此处调用最后一行代码之前,请务必将光标移动到第一行结果。
if (c.moveToFirst())
{
id = c.getLong(c.getColumnIndex("_id"));
}
答案 2 :(得分:0)
public void addData(View view){
DBHandler dbHandler = new DBHandler(this);
//normally the id is comming as int , i changed it to string
long val = dbHandler.addInfo(username.getText().toString(), password.getText().toString());
if(val > 0){
Toast.makeText(this, "Inserted Successfully", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(this, "Inserting Error", Toast.LENGTH_LONG).show();
}
}