在我的数据库中,我想从我的数据库中检索一行。为此,我写了一个查询:
Cursor mCursor = db.query("Author_table", column_name, "Author_name=?" , params, null , null , null) ;
通过这个我想做以下查询:“从 Author_table 中选择 AID,其中 Author_name = Sultan”。但是我在 android 的 SQLiteDatabase 中有一个异常。请建议我该怎么做??
像这样的东西应该工作:
Cursor c = db.query("Author_table", new String[] {"AID"}, "Author_name=?", new String[] {"Sultan"}, null, null, null);
SQLOpenHelper
import java.io.File;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Environment;
public class OpenHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "test.db";
private static final int DATABASE_VERSION = 8;
private static final String CREATE_TABLE_USER = "create table USER( "
+ "username varchar(256) not null, " + "sex varchar(1) not null, "
+ "password varchar(64) not null, " + "active int not null"
+ ");";
public OpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_USER);
}
@Override
public void onOpen(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < 8) {
// db update goes here and in onCreate() (for newly installed apps)
}
}
}
将字符串值用单引号括起来。您的查询应如下所示
Select AID from Author_table where Author_name = 'Sultan';
代替
Select AID from Author_table where Author_name = Sultan;
试试这个查询
Cursor cursor = db.query("Author_table", new String[] { "AID" },
"Author_name LIKE ?", new String[] { "%Sultan%" }, null, null,null);