0

在我的数据库中,我想从我的数据库中检索一行。为此,我写了一个查询:

Cursor mCursor = db.query("Author_table", column_name, "Author_name=?" , params, null , null , null) ;

通过这个我想做以下查询:“从 Author_table 中选择 AID,其中 Author_name = Sultan”。但是我在 android 的 SQLiteDatabase 中有一个异常。请建议我该怎么做??

4

3 回答 3

1

像这样的东西应该工作:

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)
        }
    }

}
于 2012-10-10T13:36:35.487 回答
0

将字符串值用单引号括起来。您的查询应如下所示

Select AID from Author_table where Author_name = 'Sultan';

代替

Select AID from Author_table where Author_name = Sultan;
于 2012-10-10T13:33:32.707 回答
0

试试这个查询

Cursor cursor = db.query("Author_table", new String[] { "AID" },
                    "Author_name LIKE ?", new String[] { "%Sultan%" }, null, null,null);
于 2012-10-10T13:38:51.827 回答