查询中的Where子句

问题描述:

我想在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

使用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