2017-08-07 283 views
-1

我想在Android Studio中使用SQLite創建查詢,但我遇到了很大的麻煩。
我想select * from Student.db where name = Mike查詢中的Where子句

這裏是我的代碼片段:一個事實,問題是我的查詢中

package com.example.lyubo.database; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

/** 
* Created by LYUBO on 2017/08/07. 
*/ 

public class DatabaseHelper extends SQLiteOpenHelper { 
    public static final String DATABASE_NAME = "Student.db"; 
    public static final String TABLE_NAME = "student_table"; 
    public static final String COL_1 = "ID"; 
    public static final String COL_2 = "NAME"; 
    public static final String COL_3 = "SURNAME"; 
    public static final String COL_4 = "MARKS"; 

    public DatabaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, 1); 

    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL("create table " + TABLE_NAME +" (ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,SURNAME TEXT,MARKS INTEGER)"); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME); 
     onCreate(db); 
    } 



    public Cursor getAllData() { 
     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor res = db.rawQuery("select * from "+TABLE_NAME + " WHERE " + COL_2 + " = Mike",null); 
     return res; 
    } 
} 

我知道。我不確定我是否缺少一些東西。

請協助。謝謝。

+2

需要引用的字符串比較:... =「邁克」 – ednincer

+0

OMG!我只是浪費了2個小時。 非常感謝你這位先生。問題解決了! – Lyubomir

+0

如果我想根據用戶的輸入來查看它,我只需要替換Mike部分,並寫入像這樣: Cursor res = db.rawQuery(「select * from」+ TABLE_NAME +「WHERE」+ COL_2 +「=」+ mainAct.editName.getText()。toString(),null); – Lyubomir

回答

1

使用res.moveToFirst() 爲什麼? 基本上光標不知道要去哪裏或找到自己(不知道如何把它放在實際的詞),所以你需要把它放在列表爲了執行數據庫查詢。

嘗試微調串,以確保沒有多餘的空格:

Cursor res = db.rawQuery("select * from "+TABLE_NAME.trim()+" WHERE "+COL_2.trim()+" = Mike" , null); 
+0

謝謝。 \t 如果我想根據用戶的輸入來查看它,我只需要替換Mike部分,並寫入如下:Cursor res = db.rawQuery(「select * from」+ TABLE_NAME +「WHERE」+ COL_2 +「=」+「 mainAct.editName.getText()。toString()「,null); – Lyubomir

+0

不要忘記在'toString()' – Dennis

+0

之後修剪並且請將其標記爲幫助其他人!謝謝! – Dennis