为了账号安全,请及时绑定邮箱和手机立即绑定

当从数据库获取数据时仅获取行的第一个索引时,我想要每行的所有数据

当从数据库获取数据时仅获取行的第一个索引时,我想要每行的所有数据

芜湖不芜 2023-09-20 17:34:56
我是 android 和 java 新手...想要从 sqlite 中的每一行获取所有数据。public Cursor fetch() {        dh = this.getReadableDatabase();        Cursor cursor = this.dh.query(TABLE_INVOICE, new String[]{ITEM_NAME, ITEM_PRICE, QTY, ITEM_TAX, BILL_NO, DATE, CUST_NAME, CUST_ADDR, INVOICE_TOT, GRAND_TOT, TIME}, null, null, null, null, null);        if (cursor != null) {            cursor.moveToFirst();        }    return cursor;}数据获取:Cursor cursor = datahandler.fetch();//                        String response = datahandler.getInvoice(itemName,invoice,mprice,billno,mdate,qty);        ITEM_NAME = cursor.getString(0).trim();        ITEM_PRICE = cursor.getString(1).trim();        QTY = cursor.getString(2).trim();        ITEM_TAX = cursor.getString(3).trim();        BILL_NO = cursor.getString(4).trim();        DATE = cursor.getString(5).trim();        CUST_NAME = cursor.getString(6).trim();        CUST_ADDR = cursor.getString(7).trim();        INVOICE_TOT = cursor.getString(8).trim();        GRAND_TOT = cursor.getString(9).trim();        TIME = cursor.getString(10).trim();
查看完整描述

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

重复调用cursor.moveToNext()直到返回false,并提取其间的数据。


Cursor cursor = datahandler.fetch();


do {

    // extract data from cursor for current row

} while (cursor.moveToNext());

为了防止出现空值,Cursor您还应该调用 -- 并测试 -- 的返回值moveToFirst()。moveToFirst()您在检索 时调用Cursor,但从未测试结果。


if (cursor.moveToFirst()) {

    do {

        // extract data from cursor for current row

    } while (cursor.moveToNext());

}


查看完整回答
反对 回复 2023-09-20
?
当年话下

TA贡献1890条经验 获得超9个赞

从数据库返回列表中的所有项目。


public List<Records> fetch() {

    List<Records> records = new ArrayList<Records>();

    dh = this.getReadableDatabase();

    Cursor cursor = this.dh.query(TABLE_INVOICE, new String[]{ITEM_NAME, ITEM_PRICE, QTY, ITEM_TAX, BILL_NO, DATE, CUST_NAME, CUST_ADDR, INVOICE_TOT, GRAND_TOT, TIME}, null, null, null, null, null);

    if ( cursor.moveToFirst()) {

        do {

            ITEM_NAME = cursor.getString(0).trim();

            ITEM_PRICE = cursor.getString(1).trim();

            QTY = cursor.getString(2).trim();

            ITEM_TAX = cursor.getString(3).trim();


            records.add(new Records(ITEM_NAME,ITEM_PRICE,QTY,ITEM_TAX)); 

        } while (cursor.moveToNext());

    }

    return records;

}

然后List<Records> records = db.fetch(); 循环记录列表


查看完整回答
反对 回复 2023-09-20
  • 2 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信