0

さて、この例を見ると、明らかに何かが欠けています。アイテムがそこにあるという最初のifステートメントを返し続ける次のコードがありますが、クエリに対してそれを行います。私が照会しているコンテンツの一部は 12 文字にも満たず、一致しない可能性があるため、それらが存在しないことはわかっています。私の理解では、moveToFirst(); を使用していました。一致した結果を返すかのどちらかですが、ドキュメントには moveToFirst がそれを最初の行に移動するだけで、それが成功したと書かれています。ですから、常に成功するのは、カーソルが作成され、カーソルが最初の行に移動するためだと思います。それが起こっている場合、データベース内に値が存在するかどうかを確認するにはどうすればよいですか? 助けてくれてありがとう、なぜこれが私を逃れているのかわからない、私は先日同じ方法を使ってそれを動かしていた、

    String selectQuery = "SELECT * FROM " + TABLE_NAMES + " WHERE " + COLUMN_NAME = '" + contents +"'";
    Cursor cursor = myDataBase.rawQuery(selectQuery, null);

    if (cursor.moveToFirst()) {
        contents = "The item" + contents +" is a valid.";
        tv.setText(contents);
    }else{
         contents = "The item " + contents + " is not a valid WIC item";
         tv.setText(contents);
    }
    close();
4

2 に答える 2

0

クエリステートメントにいくつかのエラーがあります。次のように置き換えてください。

String selectQuery = "SELECT * FROM " + TABLE_NAMES + " WHERE " + COLUMN_NAME + "=" + contents;
于 2013-01-10T04:26:56.273 に答える
0

TABLE_NAMES名前が 1 つしか含まれていませんか? そうでない場合、結果はtrueになります

于 2013-01-11T19:00:26.840 に答える