【问题标题】:how to get the database value to a String array in android(sqlite Database)如何在android(sqlite数据库)中将数据库值获取到字符串数组
【发布时间】:2012-02-18 17:13:21
【问题描述】:

我有一个数据库名称“CUED”(sqlite Android),它有一个表HELLO,其中包含一列NAME,我可以从该列获取字符串的值。 让我给你看我的代码部分

myDB =hello.this.openOrCreateDatabase("CUED", MODE_PRIVATE, null); 
Cursor crs = myDB.rawQuery("SELECT * FROM HELLO", null);
                
while(crs.moveToNext())
{
    String uname = crs.getString(crs.getColumnIndex("NAME"));
    System.out.println(uname);
}

它会一一打印值。现在我需要的是我想从数据库中获取列值,以便我可以将它存储在一个字符串数组中。

【问题讨论】:

    标签: android arrays sqlite android-cursor


    【解决方案1】:

    你已经完成了困难的部分......数组的东西很简单:

    String[] array = new String[crs.getCount()];
    int i = 0;
    while(crs.moveToNext()){
        String uname = crs.getString(crs.getColumnIndex("NAME"));
        array[i] = uname;
        i++;
    }
    

    无论如何,我总是建议在这种情况下使用集合:

    List<String> array = new ArrayList<String>();
    while(crs.moveToNext()){
        String uname = crs.getString(crs.getColumnIndex("NAME"));
        array.add(uname);
    }
    

    为了比较数组,你可以这样做:

    boolean same = true;
    for(int i = 0; i < array.length; i++){
        if(!array[i].equals(ha[i])){
            same = false;
            break;
        }
    }
    // same will be false if the arrays do not have the same elements
    

    【讨论】:

    • 谢谢兄弟现在可以再帮我一次我有另一个字符串数组我想比较数组中的两个值让我解释一下我的第一个数组--- String[] ha={"hello" "海"};和来自数据库的字符串数组----String[] array={"hello","hai"};如果两者相同,我想检查两个数组的每个位置让我进入下一页
    • 很好,但是如果需要从一行中获取所有列值形成字符串数组是指怎么做?
    • 嘿,很好的答案...如果返回多行该怎么办。 ??字符串 uname = crs.getString(crs.getColumnIndex("NAME"));字符串 lname = crs.getString(crs.getColumnIndex("LASTNAME"));
    • 别忘了crs.close();
    【解决方案2】:
           String[] str= new String[crs.getCount()];
           crs.movetoFirst();           
         for(int i=0;i<str.length();i++)
            { 
               str[i] = crs.getString(crs.getColumnIndex("NAME"));
                System.out.println(uname);
          crs.movetoNext();
            }
    

    好好享受吧

    【讨论】:

    • 你没有移动光标位置。
    【解决方案3】:

    这是我的代码,它返回 arraylist 包含字段值:

    public ArrayList<String> getAllPlayers() {
    
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cur = db.rawQuery("SELECT " + serailnumber + " as _id, " + title
                + " from " + table, new String[] {});
        ArrayList<String> array = new ArrayList<String>();
        while (cur.moveToNext()) {
            String uname = cur.getString(cur.getColumnIndex(title));
            array.add(uname);
    
        }
        return array;
    }
    

    【讨论】:

      猜你喜欢
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      • 2016-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多