2013-04-01 68 views
0

我已将产品名称保存在Sqllite数据库的一列中。产品名称已经保存在那里,我需要将所有产品名称发送到Web服务。例如, briyani,无所事事。 我已经用它的代码在Sqllite但字符串不是append.I有下面这段代码提到:获取Sqllite中的所有列值android

public String fetchMyRowid(String column_name) 
    { 
     String query = "select "+column_name+" From " + TABLErestaurant; 

     mCursor =db.rawQuery(query, null); 
     StringBuffer buf = new StringBuffer(); 
     if (mCursor.moveToFirst()) { 

      buf.append(mCursor.getString(0)+","); 

     } 

     return buf.toString(); 
    } 

回答

0

只是在这里做一个小的变化,

,而不是这一行,

String query = "select "+column_name+" From " + TABLErestaurant; 

尝试这一行

String query = "select * From " + TABLErestaurant; 
2
if (mCursor.moveToFirst()) { 
buf.append(mCursor.getString(0)+","); 
} 

问题是你没有迭代你的结果。做到这一点,而不是:

while(mCursor.moveToNext()) { 

buf.append(mCursor.getString(mCursor.getColumnIndex(column_name))+","); 

} 
+2

在调用'mCursor.moveToNext()'之前检查'mCursor!= null' – Squonk

+0

这不是工作g – Gomathi

0

你的代码是好的,但你forgate:db.getWritableDatabase();getreadableDatabase()

我这里有修改代码DBController是我的课public class DBController extends SQLiteOpenHelper

所以你的代码会是..

public String fetchMyRowid(String column_name, DBController db) { 
     String query = "SELECT " + column_name + " FROM " + TABLErestaurant; 
     SQLiteDatabase dd = db.getWritableDatabase(); 
     cursor = dd.rawQuery(query, null); 
     StringBuffer buf = new StringBuffer(); 
     if(cursor.getCount() > 0 || cursor != null){ 

      do { 

       Log.e("name--->", "" + cursor.getString(0)); 
       buf.append(cursor.getString(0) + ","); 

       } while (cursor.moveToNext()); 

       Log.e("name---> buffeer-->", "" + buf); 

      } 

     return buf.toString(); 
    } 
+0

它不起作用 – Gomathi

+0

StringBuffer buf = new StringBuffer();在返回语句调用后。它不会去在如果条件 – Gomathi

+0

同样的问题,我们不能去如果条件。但值被添加到光标 – Gomathi