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)));