0

いくつかのデータを含む sqlite データベースを取得しましたが、このブログ ( http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ ) を読みました。テーブルには_idという行が必要なので、Androidはフィールドをバインドできます(それが何を意味するのかわかりません)が、データベースが少し複雑であるため、これはかなり面倒です。データベースを本当に変更する必要があるのか​​ 、それとも別の方法があるのか​​ 疑問に思っていましたこの問題を解決します。

4

2 に答える 2

1

CursorAdapter、またはそのサブクラスのいずれかを使用している場合は、整数列、できれば一意の列Cursorが必要です。_id

選択肢は次のとおりです。

  1. _idテーブルに(たとえば、列として)追加AUTOINCREMENTし、それをクエリに含めます。

  2. SQLite の などROWID、クエリ内のテーブルの列の名前を変更します (たとえばSELECT ROWID AS _id, ... FROM table WHERE ...Cursor

  3. _id(例: SELECT _id=0, ... FROM table WHERE ...)に対して固定値を返してみてください。

  4. CursorAdapterまたはそのサブクラスを使用しないでください

于 2013-03-25T19:59:30.047 に答える
0

いいえ、間違いなくデータベースを使い続けることができます。

「_id」フィールドに関しては、多くのアダプターでアイテムを配置する正しい場所 (たとえば、リストやスピナー) を見つけるために使用されますが、それがない場合の回避策もあり、単にあなたのデータにアクセスします。

欠落している_idの一般的な解決策は、行のインデックスの名前を変更することです(存在し、「_id」と呼ばれていない場合)。次のようなクエリを使用します。

SELECT index AS _id IN table;

お役に立てれば。

于 2013-03-25T20:01:59.337 に答える