2011-03-31 230 views
3

如何從數據庫中獲取信息。我想執行這一行從數據庫sqlite中獲取信息

String nom = db.execSQL("select name from person where id='+id+'"); 

任何一個可以糾正我此行從表人

+0

你應該張貼問題之前,有[搜索](http://stackoverflow.com/search?q=Using+Database+in+Android)StackOverflow上。 – Mudassir 2011-03-31 10:16:06

+0

這裏id是int? – 2011-03-31 10:17:01

+0

嘗試這一行db.execSQL(「select person from person where id ='」+ id +「'」); – 2011-03-31 10:49:05

回答

8

如果您的id是integer數據類型,請嘗試此操作。

public String getResult(int id) 
{ 
    String name = null; 
    try 
    { 
     Cursor c = null; 
     c = db.rawQuery("select name from person where id="+id, null); 
     c.moveToFirst(); 
     name = c.getString(c.getColumnIndex("name")); 
     c.close(); 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
    return name; 
} 

皮斯試試這個,如果你的ID是字符串數據類型。

public String getResult(String id) 
{ 
    String name = null; 
    try 
    { 
     Cursor c = null; 
     c = db.rawQuery("select name from person where id=" + "\""+id+"\"", null); 
     c.moveToFirst(); 
     name = c.getString(c.getColumnIndex("name")); 
     c.close(); 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
    return name; 
} 
+0

小提示:名稱不是一個int :) – WarrenFaith 2011-03-31 10:29:24

+0

感謝warren它的我的錯誤... – 2011-03-31 10:30:50

+0

非常好,寫得很好的答案,正是我所需要的。非常感謝。 – raddevus 2016-03-18 15:29:53

1
Cursor cursor = db.rawQuery("SELECT name FROM person WHERE id = ?", new String[] { id }); 
cursor.moveToFirst(); 
String nom = cursor.getString(cursor.getColumnIndex("name")); 

這應該是最簡單的方法(未測試得到的人的名字,但你應該得到這個想法)。

它也看起來像你不知道android如何處理數據庫訪問,所以我建議看看至少在Cursor類。

execSQL()文件:

執行一個SQL語句不是SELECT或返回數據的任何其他SQL語句。