Android 如何使用rawQuery在SqlDatabase中搜索行中的整数?

Android 如何使用rawQuery在SqlDatabase中搜索行中的整数?,android,mysql,Android,Mysql,这是我的密码: public String getFriendName(int aFindexnum){ String sql = "SELECT * FROM peopleTable WHERE "+KEY_CBINDEX+"="+aFindexnum; Cursor cursor = ourDatabase2.rawQuery(sql, null); String Fname = curs

这是我的密码:

    public String getFriendName(int aFindexnum){
                String sql = "SELECT * FROM peopleTable WHERE "+KEY_CBINDEX+"="+aFindexnum;
                Cursor cursor = ourDatabase2.rawQuery(sql, null);
                String Fname = cursor.getString(1);
                cursor.close();
                return Fname;
}
我试图搜索一个整数,然后返回sqldatabase中的字符串值 所以我传入了aFindexnum,它是Db中的整数值,我想找到它 我的问题是当我尝试做这样的事情时:

        public String getFriendName(int aFindexnum){
            String aFindex = getString(aFindexnum);
            String sql = "SELECT * FROM peopleTable WHERE "+KEY_CBINDEX+"=?";
            Cursor cursor = ourDatabase2.rawQuery(sql, new String[] {aFindex});
            String Fname = cursor.getString(1);
            cursor.close();
            return Fname;
}
这是sql数据库的条目,所以你可以在第三列中看到我输入了一个int,我想搜索它,得到名字和电话。 谢谢

  • 活动中的
    getString()
    从资源中获取字符串。引用具有索引号名称的资源id看起来可疑。如果我理解你的代码和问题,这个

    Cursor cursor = ourDatabase2.rawQuery(sql, new String[] {aFindex});
    
    应该是

    Cursor cursor = ourDatabase2.rawQuery(sql, new String[] { String.valueOf(aFindexnum) });
    
    您可以删除第一个有问题的
    getString()

  • 当您查询并获取
    光标时,必须先将其移动到有效行,然后才能访问列数据。加

    if (cursor.moveToFirst()) { ... }
    

  • 如果我理解你的密码和问题

    通过读取sql字符串代码,您需要与
    KEY\CBINDEX
    值匹配的行

    如果在数据库中,
    KEY\CBINDEX
    列的数据类型为
    int
    ,则可以获得
    integer

    通过替换

    cursor.getString(1);
    

    或者,如果是字符串,则替换为

    int intValue = Integer.parseInt(cursor.getString(cursor.getColumnIndex(KEY_CBINDEX)));
    

    您必须在第二个代码块中替换它。

    谢谢,伙计,工作得很好!
    public String getFriendName(int-aFindexnum){//String aFindex=getString(aFindexnum);String sql=“SELECT*FROM ContactsTable其中”+KEY\CBINDEX+“=?”;Cursor cursor2=ourDatabase2.rawQuery(sql,新字符串[]{String.valueOf(aFindexnum)});cursor2.moveToFirst();String Fname=cursor2.getString(1);cursor2.close();返回Fname;}
    cursor.getString(1);
    
    int intValue = cursor.getInt(cursor.getColumnIndex(KEY_CBINDEX));
    
    int intValue = Integer.parseInt(cursor.getString(cursor.getColumnIndex(KEY_CBINDEX)));