从sqlite raw获取id并使其成为整数类型

时间:2014-08-15 18:07:45

标签: java android sqlite

您好我在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);

并在此代码中登录表是我的表名?

3 个答案:

答案 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();
    }
}