如何在android sqlite应用程序中访问特定的列值?

时间:2011-08-26 10:16:04

标签: android

我有一个应用程序,我想在我的应用程序中使用SQL查询返回的值。我想使用将这些值附加到链接到远程主机上的脚本的uri。我正在调用方法来检索值,之后我将提取它们。问题是,我正面临着这样的挑战。我知道一些PHP和我想要的android在php中完成这样做:

....(preceding code)...$row['email'];

我现在可以指定一个变量,例如$email=$row['email'];

我怎么能在android中做到这一点?

我不希望返回游标,只需将列的值作为字符串。

以下是我的代码(我将需要帮助来检索密码列)

public String[] selectAll()
{
    Cursor cursor = db.query(DB_TABLE_NAME, new String[] { "email","password"},null, null, null, null,null); 
    if(cursor.getCount() >0)
    {
        String[] str = new String[cursor.getCount()];
        int i = 0;

        while (cursor.moveToNext())
        {
             str[i] = cursor.getString(cursor.getColumnIndex("email"));

             i++;
         }
        return str;
    }
    else
    {
        return new String[] {};
    }
}

我需要有关插入“密码”列的帮助,以便随电子邮件一起返回。

2 个答案:

答案 0 :(得分:0)

试试这种方式

        String[][] str = new String[cursor.getCount()][cursor.getColumnCount()];

        while (cursor.moveToNext())
        {
             for(int j=0;j<cursor.getColumnCount();j++)
                 str[i][j] = cursor.getString(j); /// may be this column start with the 1 not with the 0

             i++;
         }

你需要将它存储在二维数组中,用于行方式和列方式 但如果每次只给出一个结果

        String[] str = new String[cursor.getColumnCount()]; // here you have pass the total column value
        while (cursor.moveToNext())
        {
             str[0] = cursor.getString(cursor.getColumnIndex("email"));
             str[1] = cursor.getString(cursor.getColumnIndex("password"));
         }

答案 1 :(得分:0)

你应该像这样改变你的设计

public Cursor selectAll() {    
        Cursor cursor = db.query(DB_TABLE_NAME, new String[] { "email","password"},null, null, null, null,null); 
return cursor;        
    }

并使用像这样的selectAll函数

Cursor cursor=selectAll();
String[] mail = new String[cursor.getCount()];
String[] pass = new String[cursor.getCount()];
int i=0; 
while (cursor.moveToNext())
            {
                 mail[i] = cursor.getString(cursor.getColumnIndex("email"));
                 pass[i] = cursor.getString(cursor.getColumnIndex("password"));

                 i++;
             }