【问题标题】:App Development using eclipse使用 Eclipse 开发应用程序
【发布时间】:2018-09-03 01:39:34
【问题描述】:

我想使用按钮单击的 where 条件从表中检索最小余额。以下是我的代码,它不起作用请给我解决方案。提前致谢..

smname = spn_mname.getSelectedItem().toString().trim();

yname = spn_yname.getSelectedItem().toString().trim();

scno = spn_count.getSelectedItem().toString().trim();

String dbsyname = null, dbsmname = null, dbsycolor = null, dbscount = null, dbsrqty = null, dbsdqty = null, dbsbaln = null;
DataBaseHelper dbh = new DataBaseHelper(StockActivity.this);

SQLiteDatabase db = dbh.getReadableDatabase();

Cursor cursor = db.rawQuery("SELECT MIN(Balance) FROM stocktable",null);
if (cursor.moveToFirst()) {
    do {
        dbsmname = cursor.getString(cursor.getColumnIndex("Millname"));
        dbsyname = cursor.getString(cursor.getColumnIndex("Yarnname"));
        dbscount = cursor.getString(cursor.getColumnIndex("Counttno"));

        if (dbsmname.equals(smname) 
                && bsyname.equals(syname)
                && dbscount.equals(scno)) {
            dbsbaln = cursor.getString(cursor.getColumnIndex("Balance"));
        }

    } while (cursor.moveToNext());

    edtrqty.setText(dbsbaln);
}

【问题讨论】:

  • 什么问题,是不是崩溃了?
  • s 它显示不幸的是应用程序已停止
  • 我已经添加了解决方案,试试吧。如果仍然有错误添加崩溃日志

标签: android eclipse sqlite


【解决方案1】:

您只在查询中选择了 MIN(Balance) 并尝试访问 Millname,Counttno 和游标上的其他值将引发异常。

试试下面的解决方案

    Cursor cursor = db.rawQuery("SELECT MIN(Balance) balance as  FROM stocktable 
 where Millname=? AND bsyname=? AND dbscount=?",new String[]{smname,syname,scno});
  if (cursor.moveToFirst()) {
      do {
            dbsbaln = cursor.getString(cursor.getColumnIndex("balance"));
          }

      } while (cursor.moveToNext());
        edtrqty.setText(dbsbaln);

【讨论】:

    【解决方案2】:

    以下代码完美运行...

    Cursor cursor = db.rawQuery("SELECT MIN(Balance) AS balance FROM " + DataBaseHelper.stocktable + " WHERE Millname = ? AND Yarnname = ? AND Counttno = ? ", new String[] { smname, syname, scno });

                if (cursor.moveToFirst()) {
                    do {
                        dbsbaln = cursor.getString(cursor
                                .getColumnIndex("balance"));
    
                    } while (cursor.moveToNext());
                    edtrqty.setText(dbsbaln);
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-17
      • 2019-05-09
      • 2012-10-22
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多