2010-12-29 15 views

cevap

43

En Eğer bir SQLiteDatabase örneği ve kullanım sorgu yöntemini kullanırsanız

SQLiteDatabase mDataBase; 
(some code here...) 
mDataBase = getReadableDatabase(); 
Cursor dbCursor = mDataBase.query(TABLE_NAME, null, null, null, null, null, null); 
String[] columnNames = dbCursor.getColumnNames(); 

columnNames sütun adlarına sahip olmalıdır

+1

ve lütfen belirli bir sütundan nasıl değer alacağımı söyle? – Apurva

+0

İmleç dbCursor = mDataBase.query (TABLE_NAME, yeni Dize [] {YOUR_COLUMN_NAME_1, YOUR_COLUMN_NAME_2, ....}, null, null, null, null, null); –

+0

getReadableDatabase nedir? –

6

Bir sütun adları listesine ihtiyacınız olmayabilir.

Görünüşe göre, virgülle ayrılmış bir sütun listesi oluşturabilmeniz için sütun adları listesini istediğiniz gibi görünüyor. Bu durumda, o zaman normalde bunun yerine bir yıldız kullanabilirsiniz, SELECT sorguda sütun adlarının listesini koyun nerede:

SELECT t.* FROM table AS t ... 

:

SELECT * FROM table WHERE ... 

Veya tablo diğer ad ise

Yıldız işareti "tüm sütunlar" anlamına gelir.

DÜZENLEME: Eğer gerçekten bir tablonun sütun adlarının listesini istiyorsun, o zaman aşağıdaki kodu kullanabilirsiniz:

Cursor c = db.rawQuery("SELECT * FROM table WHERE 0", null); 
try { 
    String[] columnNames = c.columnNames(); 
} finally { 
    c.close(); 
} 

Not Eğer herhangi Strings iade diziyi değiştirmez gerekir yol: https://code.google.com/p/android/issues/detail?id=3731

+0

Neden "WHERE 0" kullanılıyor? Biz olmadan yapamaz mıyız? : O –

4

Ayrıca, sorgu yönteminin sütun parametreleri için girdi olarak null kabul ettiğini de unutmayın. Boş girerseniz, tüm sütunlar döndürülür.

db.query("Table_name",null,COLUMN_ID + "=" + id,null,null,null,null); 

Belirtilen kimliğe sahip olan satırın tüm sütunlarını döndürür.

Burada yöntem tanımını görebilirsiniz.

+0

'if (columns! = Null && columns.length! = 0) { appendColumns (sorgu, sütunlar); } else { query.append ("*"); } ' – Renatinn

İlgili konular