問題タブ [sqliteopenhelper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1660 参照

android - ContentProvider を使用して Android で SQLite DB をアップグレードする

私はアプリを開発しており、SQLite、contentResolver、および contentProvider を使用しています。

アプリケーションの説明 私のアプリは、内部 SQLite DB で連絡先を検索します。データは、最初の昼食時またはユーザーがメニューの更新オプションを押したときに選択された外部ファイルから到着します。

DB へのすべてのアクセスは getContentResolver() を使用して行われます。

ContentProvider ContentProvider 拡張し、 SQLiteOpenHelperを拡張するデータベース アダプターであるContactsDBAdapterへの参照を保持するContactsContentProviderクラスがあります。(私はあなたが今まで私と一緒にいたことを願っています).

問題 の説明 ユーザーが更新ボタンを押したときに、DB がすべてのテーブルを削除して新しいデータをロードするようにします (これはファイル チューザーによって行われ、うまく機能します)。ContactsDBAdapterのonUpgrade()を機能させるには、コンテンツ プロバイダーの onCreate() を以前よりも新しいバージョンで呼び出す必要があります

しかし、contentResolverからcontentProviderを取得するので、2 回作成されることはありません。

contentProvidercontentResolverの両方を使用する方法については多くの説明がありますが、適切なアップグレードの進行状況はどこにも見つかりませんでした。

onUpgrade がどのように機能するか、および getReadableDatabase ()およびgetWritableDatabase()呼び出し中にチェックされていることは認識していますが、 ContactsDBAdapterは以前と同じインスタンスであるため、バージョンが異なることはありません。

いくつかの回避策を考えましたが、まったく気に入りませんでした。バージョンが高い場合はinsert()中に手動で確認できます(ただし、すべての呼び出しで行われるため、費用がかかります)。答えが真の場合は、onUpgradeを手動で呼び出します。

または、何らかの方法でプロバイダーの登録を解除しようとしましたが、これまで有効で適切な解決策が見つかりませんでした。

DB をアップグレードするためのベスト プラクティスは何ですか?

ありがとう!

0 投票する
3 に答える
258 参照

android - 8000 レコードの Sqlite データベースを作成する

オートコンプリート テキストビューに sqlite を使用するアプリケーションを開発しています。データベースには 8000 を超えるレコードがあります。データベースの作成は、 のクエリで実行できますonCreate()。しかし、8000 件以上のレコードを含むデータベースを作成するにはどうすればよいでしょうか。8000 レコードの挿入クエリを作成することは、私には最悪のように思えます。

8000 件以上のレコードを含むデータベースを作成する最善の方法は何ですか? mysql のように sql ファイルをダンプする方法はありますか。

0 投票する
2 に答える
7076 参照

java - スピナーにデータベース情報を入力する方法

データベースから情報を入力する必要があるスピナーがありますが、見つかった例は機能しません。

これが私のコードです:

0 投票する
1 に答える
121 参照

android - Simplecursor アダプターを介して ListView を設定できませんでした

リストビューにデータベースのデータを入力したいのですが、そうしようとすると例外が1つだけ発生します。

どのアダプターを使用しても、同じ例外が発生します。

これは私のSQLiteOpenHelperです:

これは、単純なカーソルアダプターを介してリストビューにデータを入力しようとしている場所です。

なぜそのような例外が発生するのかわかりません。アクセスしているテーブルに「_id」という名前の列がありません。助けてください。ありがとうございました!

0 投票する
1 に答える
5787 参照

android - SQLiteException near "null":構文エラー:、コンパイル中:INSERT OR REPLACE INTO

単純なDbHelperを構成しようとしていますが、実行中にエラーが発生します。

エラーは次のとおりです。

何が問題なのかわかりませんか?

DbHelperクラスは次のとおりです。

メインクラスは次のとおりです。

0 投票する
4 に答える
29650 参照

android - 事前のclose()Androidなしで終了したカーソル

私のアプリケーションにはリストビューがあります。SQLiteDatabase からクエリを使用してデータを取得します。データベースからデータを取得すると、次のエラーが発生します。 エラー

20行目から21行目に行くと発生します。 発生する

regel 50にcursor.deactivate()とcursor.close()を配置しようとしましたが、結果はありませんでした。このエラーが発生する理由と解決方法を知っている人はいますか? ありがとう :)

0 投票する
1 に答える
4338 参照

android - SQLiteデータベースでListFragmentを使用したAndroidデザイン

SQLiteデータベースを使用してListFragmentを実装するための最良の方法は何ですか。現在、SimpleCursorAdapterへのレコードのオープン、クローズ、およびフェッチを容易にするためにDBAdapterを作成しました。ナビゲーションタブを備えたActionBarを実装するMainActivityがあり、タブごとに異なるListViewを表示したいと思います。

これが私のListFragmentです:

これがMyListAdapterコードで、今のところ独自のクラスファイルにあります。

これはこれについて行く方法ですか?私はあなたが持っているかもしれないどんな提案でも、あるいはあなたが何か良い例を知っているなら、感謝します。

0 投票する
1 に答える
161 参照

android - クエリ終了後のリストの再配置

検索可能な連絡先の種類のアプリを作成します。以下は私のコードです

}

問題は、編集テキストから単語をクリアした後です。前のリストビューに戻る必要があります。つまり、データベース内のすべての値が表示されます。

ここに画像の説明を入力

0 投票する
3 に答える
633 参照

android - ListView.OnItemClickListener の IllegalStateException

メインアクティビティにリストビューがあり、クリックすると人に関する詳細情報が表示され、2 つのクラスがあります

EmployeeList.java - http://pastebin.com/5vPMKrCQ

DatabaseHelper.java - http://pastebin.com/NS7RR8E6

logcat に次の例外があります。

0 投票する
3 に答える
2434 参照

sqlite - Androidでデータベースの問題を抱えたアプリケーションクラス

AndroidアプリケーションでSQLiteDBにアクセスできません。SQLiteOpenHelperのインスタンスを含むアプリケーションクラスを作成しましたが、別のアクティビティでDBを開こうとすると、クラッシュします。

これが私のアプリケーションクラスです:

これが私のSQLiteOpenHelperクラスです。

}

そして、このような別のアクティビティでデータベースにアクセスしようとすると、エラーが発生します。

何か助けはありますか?ありがとうございました!