2011-09-21 65 views
-2

我正在构建一个应用程序,我需要访问我存储在sqlite数据库中的用户的一些细节。问题是我熟悉的代码返回“只”一个值...但是当我尝试访问多个列......应用程序出错。 下面是我使用的代码。谢谢。如何在android sqlite应用程序中访问多个列值?

public String selectAll() 
{ 

Cursor cursor = db.query(DB_TABLE_NAME2, new String[] { DB_COLUMN_1_NAME,DB_COLUMN_2_NAME,DB_COLUMN_3_NAME,DB_COLUMN_4_NAME,DB_COLUMN_5_NAME,DB_COLUMN_6_NAME},null, null, null, null,null); 

    if(cursor.getCount() >0) 
    { 


     cursor.moveToNext(); 

      email = cursor.getString(cursor.getColumnIndex(DB_COLUMN_1_NAME)); 
      password=cursor.getString(cursor.getColumnIndex(DB_COLUMN_2_NAME)); 
      phone = cursor.getString(cursor.getColumnIndex(DB_COLUMN_3_NAME)); 
      fname=cursor.getString(cursor.getColumnIndex(DB_COLUMN_4_NAME)); 
      lname = cursor.getString(cursor.getColumnIndex(DB_COLUMN_5_NAME)); 
      location=cursor.getString(cursor.getColumnIndex(DB_COLUMN_6_NAME)); 
      street = cursor.getString(cursor.getColumnIndex(DB_COLUMN_7_NAME)); 

    } 

      return password; 
      return email; 
      return phone; 
      return fname; 
      return lname;   

      return location; 
      return street; 
      return email; 


} 
+0

嗨检查你的代码。你的查询只有6列,但你试图访问7列。所以它会给出错误。 –

+0

好的,看看我的答案。 – user370305

+0

看看你的代码......它有一堆** return **语句。但它会在第一个退出。所以,它总是只会返回'password'。 –

回答

1

HIII

可以使用具有getter和setter方法和简单的特定变量的设置方法中的值相加包装类。 通过传递整个包装类,您可以使用getter方法获取所有变量的值。

希望u得到我说什么.....

+0

避免内部getter/setter方法而不是使用public static成员。看到这个http://developer.android.com/guide/practices/design/performance.html – Pratik

+0

我知道,我已经给出了我知道的想法.... – Richa

+0

是啊我知道ABT,你的答案没有错,你绝对正确,但作为性能明智的事情,我被告知你 – Pratik

0

其实你没有把循环在你的代码,这就是为什么对于多列其返回单个列作循环。例如:

$if (c.moveToFirst()) 
    { 
     do { 
      plysidvec[i] = c.getString(0); 
      plysvec.add(c.getString(1)); 
      i++; 
     } while (c.moveToNext()); 
    } 
相关问题