我有一个应用程序,我想在我的应用程序中使用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[] {};
}
}
我需要有关插入“密码”列的帮助,以便随电子邮件一起返回。
答案 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++;
}