Android Listview和DialogFragment中的查询(查询很好!!)
嗨,伙计们,我有一个巨大的问题,我不能再活下去了。。。这很简单,你有一个列表视图,当你点击列表视图中的一个项目时,我得到该项目的“Rubro”,这很好…问题是我有一个方法,我可以查询comapre这个Rubro,并从表中得到一个长的att,但是,查询不起作用!!但是我知道这个查询很好,因为我用SQLite的DB Brwoser来证明它!!下面是我调用该方法的代码:Android Listview和DialogFragment中的查询(查询很好!!),android,sqlite,listview,dialogfragment,Android,Sqlite,Listview,Dialogfragment,嗨,伙计们,我有一个巨大的问题,我不能再活下去了。。。这很简单,你有一个列表视图,当你点击列表视图中的一个项目时,我得到该项目的“Rubro”,这很好…问题是我有一个方法,我可以查询comapre这个Rubro,并从表中得到一个长的att,但是,查询不起作用!!但是我知道这个查询很好,因为我用SQLite的DB Brwoser来证明它!!下面是我调用该方法的代码: public void onClick(DialogInterface dialog, int id) { TextVie
public void onClick(DialogInterface dialog, int id) {
TextView selectR = (TextView) view.findViewById(R.id.Rubro);
TextView selectV = (TextView) view.findViewById(R.id.Valor);
Long ac = db.Buscar_Rubro(selectR.getText().toString()); //THIS IS THE METHOD!
EditText r = (EditText) dialogV.findViewById(R.id.Mod);
Long Sum = Long.parseLong(r.getText().toString());
db.ModRubros(Long.parseLong(selectV.getText().toString()),ac,Sum);
Cursor cT = db.ListarRubros();//RefreshRubros(cT, from, to);
}
方法如下:
public long Buscar_Rubro(String Rubro){
SQLiteDatabase DB = database.getReadableDatabase();
String Query ="SELECT " + Database.ValorActrual + " FROM "+ Database.Taba_Rubros + " WHERE " + Database.Rubro + " LIKE '"+ Rubro +"'" ;
Cursor c = DB.rawQuery(Query,null);
Long ac = c.getLong(1);
return ac;
}
请帮帮我!为了纠正这一点,我浪费了一整天的时间
PD:这是我得到的错误,但很明显,因为查询不起作用
android.database.CursorIndexOutOfBoundsException:请求索引-1,大小为1
你应该喜欢
String Query ="SELECT " + Database.ValorActrual + " FROM "+ Database.Taba_Rubros + " WHERE " + Database.Rubro + " LIKE '"+ Rubro +"'" ;
Cursor c = DB.rawQuery(Query,null);
if (c != null && c.moveToFirst()) {
Long ac = c.getLong(0);
}
像
Long ac=c.getLong(0)那样做我这么做是为了感谢你!非常感谢你!!成功了!你能给我解释一下为什么吗???@ricarlpdevelop很简单,你想得到c.getLong(1
),但是你的光标只有一列fetch(Database.valoractrial)
,你可以通过使用c.getLong(0)
@ricarlpdevelop得到这个值。注意:Like
操作符的用法是。。。没用。由于未在搜索值附近放置任何元字符,因此它与简单的=
运算符等效(但性能较差)