2011-05-13 63 views
1

这是我的表apTable:如何运行在Android这样的SQLite查询:从表中选择X,其中X =东西,Y =东西

db.execSQL("CREATE TABLE "+apTable+" 
(" 
+idAP+" TEXT PRIMARY KEY , " 
+ssID+" TEXT, " 
+testAPid+" INTEGER NOT NULL ,FOREIGN KEY ("+testAPid+") REFERENCES "+testsTable+" ("+colTestID+") ON DELETE CASCADE);"); 

我想打一个查询,这将使我的IDAP行其中,idAP等于给定值,外键等于另一个给定值。

我正在做这样的,但它不工作:

public String CheckAP(String BSSID, String Teste) 
{ 
    SQLiteDatabase db=this.getReadableDatabase(); 
    String[] params=new String[]{BSSID, Teste}; 
    Cursor c=db.rawQuery("SELECT "+idAP+" FROM "+apTable+" WHERE "+idAP+"="+BSSID+" AND "+testAPid+"="+Teste, null);   
    c.moveToFirst(); 
    int index= c.getColumnIndex(idAP); 
    return c.getString(index);  
} 

这里有什么问题吗?

+0

什么错误,你得到些什么? – PravinCG 2011-05-13 15:57:45

+1

请提供有关“它无法正常工作”的详细信息。 – 2011-05-13 15:58:12

+0

不要选择尼特,但是如果你选择'idAP = BSSID'的'idAP',那有什么意义? – 2011-05-13 15:59:26

回答

0

试试这个吗?觉得内置的查询工作只是,而不必把where子句

Cursor c=db.query(apTable, idAP, idAP+"="+BSSID+" AND "+testAPid+"="+Teste, null, null, null, null); 

中,但你为什么要选择IDAP如果你已经知道你是选择特定IDAP?你不应该这样做吗?

Cursor c=db.query(apTable, idAP, testAPid+"="+Teste, null, null, null, null); 

:S