【问题标题】:Getting the next record into view from database从数据库中获取下一条记录
【发布时间】:2011-12-09 22:07:25
【问题描述】:

我的应用程序中有两个按钮,一个用于下一个,一个用于上一个。我希望下一个按钮获取数据库中的下一条记录并将其显示在我的视图中,而上一个按钮获取上一条记录并将其显示在我的视图中。我如何调用下一个或上一个记录?我一直在寻找教程和东西,但没有找到任何东西。谁有教程请分享给我。谢谢你的帮助。我希望我能提供一些代码,但我真的不知道从哪里开始。

【问题讨论】:

    标签: android sql database button record


    【解决方案1】:

    我使用 int 从数据库中提取记录。

    来自我的 ContactView 类

    static long record = 1;
    
    public void getData() {
    
        DBase db = new DBase(this);
        db.open();
        lastRecord = db.lRec();
        firstRecord = db.fRec();
        rRec = db.getRec(record);
        db.close();
    
    }
    

    那么我的查询来自我的 Dbase 类

    public String[] getRec(long record) {
    
        record = ContactView.record;
    
        String[] columns = new String[] { KEY_ROWID, KEY_ONE, KEY_TWO,
                KEY_THREE, KEY_FOUR, KEY_FIVE, KEY_SIX };
        Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + "="
                + record, null, null, null, null);
        if (c != null && c.moveToFirst()) {
            String rRec = c.getString(0);
            String rOne = c.getString(1);
            String rTwo = c.getString(2);
            String rThree = c.getString(3);
            String rFour = c.getString(4);
            String rFive = c.getString(5);
            String rSix = c.getString(6);
    
            String[] rData = { rRec, rOne, rTwo, rThree, rFour,
                    rFive, rSix };
    
            return rData;
    
        }
        return null;
    }
    

    接下来的几个来自我的 ContactView 类

    我的按钮

    @Override
    public void onClick(View arg0) {
    
        switch (arg0.getId()) {
        case R.id.bSQLvPrev:
    
            recordMinus();
            display();
    
            break;
        case R.id.bSQLvNext:
    
            recordPlus();
            display();
    
            break;
    
        }
    }
    

    以及它们调用的方法

    public void display() {
    
        etSQLvRec.setText(rRec[0]);
        etSQLvOne.setText(rRec[1]);
        etSQLvTwo.setText(rRec[2]);
        etSQLvThree.setText(rRec[3]);
        etSQLvFour.setText(rRec[4]);
        etSQLvFive.setText(rRec[5]);
        etSQLvSix.setText(rRec[6]);
    }
    
    public void recordPlus() {
            record++;
    
        }
    
    public void recordMinus() {
            record--;
        }
    

    这将根据“记录”变量从数据库中获取记录,并且按钮增加或减少它,它还会跳过任何“空”记录。

    编辑好吧,自从我上次使用我的数据库以来,我已经改变了一些东西,所以改用下一个 recordPlus() 和 recordMinus() 代码

    public void recordPlus() {
        if (record < lastRecord) {
            record++;
        } else {
            record = firstRecord;
        }
        getData();
    
        do {
            if (record < lastRecord) {
                record++;
            } else {
                record = firstRecord;
            }
            getData();
        } while (rRec == null);
    }
    
    public void recordMinus() {
        if (record == 1) {
            record = lastRecord;
        } else {
            record--;
        }
        getData();
    
        do {
            if (record == 1) {
                record = lastRecord;
            } else {
                record--;
            }
            getData();
        } while (rRec == null);
    }
    

    你需要我的 fRec() 和 lRec() 来查找数据库中的第一条和最后一条记录

    public long fRec() {
    
        Cursor c = ourDatabase.query(DATABASE_TABLE, new String[] { "min(" + 
        KEY_ROWID
                + ")" }, null, null, null, null, null);
        c.moveToFirst();
        long rowID = c.getInt(0);
    
        return rowID;
    }
    
    }
    
    public long lRec() {
    
        long lastRec = 0;
        String query = "SELECT ROWID from Table order by ROWID DESC limit 1";
        Cursor c = ourDatabase.rawQuery(query, null);
        if (c != null && c.moveToFirst()) {
            lastRec = c.getLong(0);
        }
        return lastRec;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多