SQLite select语句不起作用

时间:2013-09-11 13:02:51

标签: android select android-sqlite

我已经编写了一种方法,用于保存数据。方法必须返回false但返回true。我的代码在这里;

private boolean baskaVarMi(String gelenTarih) {

    boolean sonuc = false;
    int k = 0;
    SQLiteDatabase db = dbo.getReadableDatabase();
    String sql = "select * from gunlukler where tarih='" + gelenTarih + "'";
    Cursor c = db.rawQuery(sql, null);
    if (c.moveToFirst()) {
        do {
            if (c.getString(c.getColumnIndex("tarih")) == gelenTarih) {
                k++;
            }
        } while (c.moveToNext());
    }

    if (k > 0) {
        sonuc = true;
    }else if(k == 0){
        sonuc = false;
    }

    return sonuc;
}

这种方法有什么问题?

4 个答案:

答案 0 :(得分:2)

随之改变:

Cursor c = db.rawQuery(sql, null);
if (c.getCount()>0) {
c.moveToFirst()
    do {
        if (c.getString(c.getColumnIndex("tarih")).equals(gelenTarih)) {
            k++;
        }
    } while (c.moveToNext());
}

答案 1 :(得分:1)

尝试这种方式......

Cursor cur = db.query(SQL_TABLE, new String[] { URLNAME,ID,URLVALUE }, null, null,
            null, null, null); // query..

答案 2 :(得分:0)

   c.getString(c.getColumnIndex("tarih")) == gelenTarih 

不对。跟着

   c.getString(c.getColumnIndex("tarih")).equals( gelenTarih)

答案 3 :(得分:0)

仅使用此

private boolean baskaVarMi(String gelenTarih) {
SQLiteDatabase db = dbo.getReadableDatabase();
    String sql = "select * from gunlukler where tarih='" + gelenTarih + "'";
    Cursor c = db.rawQuery(sql, null);
    if (c.moveToFirst()) 
    {
       return true;
    }
    else
    {
        return false;
    }
}