1

SQLite の使い方を学ぼうとしていますが、とてもイライラして混乱しています。System.Data.SQLite を見つけるところまで行きました。これは明らかに C# で SQLite に使用するものです。

Web サイトにはドキュメントがまったくありません。明らかに 2010 年以降廃止された「元の Web サイト」にもドキュメントはありません。いくつかのブログ チュートリアルを見つけることができましたが、操作方法は基本的に次のとおりです。

  1. データベース接続を初期化します。
  2. SQL ステートメントを接続にフィードします。
  3. 接続から出てくるものを取り出します。
  4. 接続を閉じます。

C# コードに SQL ステートメントを記述したくありません。SQL コードを文字列に配置する必要があるため、IDE から支援を受けられません。

私はただできません:

  • を作成しますDataSet
  • DataSetSQLite データベースに対応する必要があることを に伝えますMyDB.sqlite
  • DataSetメンバー関数を使用して操作します。
  • DataSetはディスク上の SQLite データベースと自動的に同期するため、SQLite について心配する必要はありません。

データベースのコンテンツを に入力できることはわかっていDataSetますが、データベース全体にアクセスしたい場合はDataSet、そのすべてのコンテンツを に入力する必要があります。データベースが 1 GB の場合、1 GB の RAM を使い果たしたことになります (すべてを一度に書き込むのに必要な時間は言うまでもありません)。

単純に SQLite データベース接続を取り、それが普通のふりをすることはできませDataSetんか?

4

3 に答える 3

2

質問に対する答えはノーです。
いいえ、単に DataSet であるふりをして SQLite 接続を取得することはできません。

SQL ステートメントをコーディングしたくない場合は、Entity Framework を検討してください。
Entity Framework および Linq-to-SQL で SQLite 組み込みデータベースを使用する

于 2012-12-20T14:22:42.040 に答える
1

DataSetをデータベースとして扱うべきではありません。それは単なるクエリの結果です。

データベースにクエリを実行してデータのサブセットを取得し (DB からすべてのデータを取得する必要はありません)、このサブセットを使用してDataSet.

DataSetどの更新がどのトランザクションの一部であるべきかわからないため、変更を手動で同期する必要があります。これはあなたのシステム知識です。

于 2012-12-20T13:11:04.673 に答える
0

DataSet はメモリ内キャッシュであり、開発者が許可した場合にのみ、基になるデータ ストアと同期します。タイマー ラッパーを配置してスケジュールに従って実行することもできますが、それでもデータセットとデータ ストアを手動で同期する必要があります。

1GB 以上のデータを保存することは、メモリ使用量が非常に高くなり、パフォーマンスが非常に低下するため、実際にはお勧めできません。また、ネットワークを介してその量のデータを送信したくない場合や、インターネット接続を禁止する場合もあります。

1 GB のデータをメモリに保持する必要があるのはなぜですか?

于 2012-12-20T13:10:36.053 に答える