如何編寫SQL查詢以在WHERE子句中使用整數來選擇行?如何將WHERE子句添加到SELECT查詢中?
下面是我想使用查詢的一段代碼,但這不起作用(沒有返回結果)。
public Cursor forEditPurpose(int pos){
db=this.getReadableDatabase();
Cursor res = db.rawQuery("SELECT name,phone FROM mecontact1 where _id = " + pos + "", null);
return res;
}
這是我的整個數據庫代碼,我執行我所需要的所有操作:
public class ContactDatabase extends SQLiteOpenHelper {
SQLiteDatabase db;
public static final String DATABASE_NAME="totalContact1.db";
public static final String TABLE_NAME="mecontact1";
public static final String NAME="name";
public static final String PHONE="phone";
public static final String UID="_id";
public ContactDatabase(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL("create table mecontact1" +
"(_id integer primary key , name text, phone text)");
}catch(android.database.SQLException e){
System.out.println("table create nhi ho rha");
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS mecontact1");
onCreate(db);
}
public void insertContact(String nam,String mob,int autocrement){
db=this.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put(NAME,nam);
contentValues.put(PHONE,mob);
contentValues.put(UID,autocrement);
db.insert(TABLE_NAME, null, contentValues);
db.close();
}
public Cursor showData(){
db=this.getReadableDatabase();
Cursor res = db.rawQuery("SELECT * FROM mecontact1", null);
return res;
}
public Cursor nameData(String dataName){
db=this.getReadableDatabase();
Cursor res = db.rawQuery("SELECT * FROM mecontact1 WHERE name = '"+dataName+"'", null);
return res;
}
public Cursor phoneData(String dataNumber){
db=this.getReadableDatabase();
Cursor res = db.rawQuery("SELECT * FROM mecontact1 WHERE phone = '"+dataNumber+"'", null);
return res;
}
public Cursor phoneName(){
db=this.getReadableDatabase();
Cursor res = db.rawQuery("SELECT * FROM mecontact1 ", null);
return res;
}
public void deleteContact(String d,int pos){
db=this.getWritableDatabase();
db.execSQL("DELETE FROM "+ TABLE_NAME + " WHERE " + UID + " = " + pos +"");
db.execSQL("UPDATE " + TABLE_NAME + " set " + UID + " = (" + UID + "-1) where " + UID + " > " + String.valueOf(pos));
}
public Cursor forEditPurpose(int pos){
db=this.getReadableDatabase();
Cursor res = db.rawQuery("SELECT name,phone FROM mecontact1 where _id = " + pos + "", null);
return res;
}
}
你是什麼意思**不工作**?提供更多細節! –
@PrerakSola此查詢不返回任何行 –
@PrerakSola是這個正確的查詢? –