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

編集

SQLOpenヘルパー

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 に答える