【问题标题】:Can any one help me with these Database query谁能帮我处理这些数据库查询
【发布时间】:2015-03-17 18:40:42
【问题描述】:

我想在 String 或 int 值中获取此 Cursor Database 查询的结果,但不能。我知道 coursor.getstring 或 getint 但我在下面的案例和查询函数中应用了问题。下面是带有查询的函数。我做了我的数据库java活动,这个方法就在里面......

public Cursor getUpdatedAmount(){
String amountQuery="select sum(amount) from travelling_exp where call_id=1;";
Cursor cursor = myDatabase.rawquery(amountQuery,null);
return cursor;
}

查询工作正常,没有任何错误。 基本上我想要删除或更改我的数据库后的金额列的总和,保存并在编辑文本中显示总和值。但问题是我无法将光标值转换为值字符串或 int。

到目前为止,这就是我在其他 java 文件中实现上述 DB Query 功能的方式:

Cursor cursor = myDB.getUpdatedAmount();

如果金额列中的值为 1000,2000,3000,则函数返回 ex 的总和,然后上述查询将返回总和 = 6000。所以我想在编辑文本中保存并显示 6000。 我尝试使用 .toString 并找到其他可行的方法,但没有运气。 任何人都可以帮我解决这个问题。它对我和我的项目非常重要。

提前致谢

【问题讨论】:

  • 显示您尝试过的内容以及遇到的错误。
  • 我试过 cursor.tostring;但它给了我一些我无法理解的价值,比如 android.view......2131@ds .. 类似这样的东西..我尝试使用 String abc = String.format(); 将光标转换为字符串;但没有成功.. 我的查询很好,当我在 sqlite 中运行查询时,我得到了值,但我想转换为字符串或 int 中返回的光标值,以便我可以在 ediitext 中显示。
  • 是的 toString 不是你想要的。您需要使用getIntgetString 可能类似于getInt(0)
  • 我明白了。我想给你一个例子,那么也许你可以理解我的问题。在我的表格中有一个名为“金额”的列,保存了我购买的不同数量的商品。我删除并更新了我的表,所以我想让金额的总和显示删除插入和更新操作后剩余的总金额..所以我做了这个函数..这个函数返回金额列中剩余的总和,但在光标中无法在编辑文本中设置的值。所以我想要任何转换方法或其他方法,以便将此光标值转换为字符串或 int。
  • 是的,我完全理解你的问题......我所说的仍然适用......

标签: android mysql sqlite simplecursoradapter android-cursor


【解决方案1】:

这真的没那么难,如果你测试一下getInt(0),你会发现你已经得到了答案,但这就是

由于您只选择 SUM,因此只会返回 1 列和 1 行,这就是 getInt(0) 起作用的原因。

public String getUpdatedAmount(){
    String amountQuery="select sum(amount) from travelling_exp where call_id=1;";
    Cursor cursor = myDatabase.rawquery(amountQuery,null);
    if(cursor.moveToFirst()){
        return "" + cursor.getInt(0);
    }
}

注意:我已将您的函数更改为返回 String 而不是 Cursor

所以你可以这样使用它:

txtTotal.setText(getUpdatedAmount());

【讨论】:

  • 其实这就是我所困惑的,如何应用 getint 或 getstring 和光标以避免转换问题.. 我一定会尝试这个.. 非常感谢您的快速回复和帮助。 .:)
  • 好吧,我现在申请了。首先,它给了我一个错误,getInt(0).toString() 行“无法在原始类型 int 上调用 toString()。我将 getint 更改为 getString,然后出现添加返回语句的错误,因为可能是 retunr cursor.getint(0) .tostring(); 在进一步的括号中......所以它应该是“返回字符串”返回数量查询吗?你能帮我解决这个问题吗?
  • 我早该知道的!我现在在移动,但快速解决方法是 return ""+cursor.getInt(0)
  • 错误:方法(getUpdatedAmount)必须返回字符串类型。
  • 在 if 返回一个字符串之后,该字符串只是表示错误或其他内容。 if 是为了确保查询确实有效
猜你喜欢
  • 2013-07-11
  • 2021-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多