0

私の WinForms C#/.NET アプリケーションでは、エンド ユーザーにレコードを表示するためにテーブル/グリッド コントロールが必要です。レコードは単純で、文字列と日付/時刻フィールドの 2 つのフィールドのみを含みます。データを永続化する必要があり、最も効率的な制御とストレージのバックエンドを使用する方法を考えています。データは重要ではありません (つまり、健康記録や財務記録、または広範な安全性や暗号化を必要とする機密データではありません)。

これまでに見つけた 1 つの解決策は、SQL Server Compact Edition と組み合わせた DataGrid コントロールです。このソリューションについては、次のチュートリアルで学びました。

http://www.dotnetperls.com/datagridview-tutorial

これは私のアプリケーションにとってはやり過ぎかもしれません。さらに、SQL Server CE のインストールの複雑さ、特にインストール中の管理者アカウントとユーザー アカウントの権限の問題について心配しています。

http://msdn.microsoft.com/en-us/library/aa983326(v=vs.80).aspx

格納方法として単純なディスク ファイル (おそらくコンマ区切りの ASCII ファイル) を使用する組み込みのファイル ロード/保存機能を備えたテーブルまたはグリッド コントロールはありますか? SQL を (LINQ 経由で) 使用してやり取りできるものが欲しいです。また、これが透過的に行われることを望んでいます。つまり、後で SQL データベース エンジン ソリューションにアップグレードしたい場合、データとインターフェイスするコードは変更されません (もちろん、データベースのオープン/作成コードを除く)。

それとも、単に弾丸をかじって、SQL Server CE またはおそらく SQLite を使用する方がよいのでしょうか。

.Net 用の優れた組み込みデータベース ソリューション (SQLite など)

インストールの問題や使いやすさに関する注意点や逸話があれば、ぜひお寄せください。

4

2 に答える 2

2

近い将来、完全なデータベースに移行する方が簡単になるため、埋め込みデータベースを使用することを強くお勧めします。SQL Server CE は適切なオプションです。大きくしたい場合は、コードの変更を最小限に抑えて完全な SQL Server データベースに簡単に移行できます。SQL Server CE の唯一の欠点は、インストールする必要があることと、 .NET Framework 4 は、それを除けば、大きな問題はないと思います。

于 2013-02-18T20:19:25.133 に答える
2

私のプロジェクトでは、オブジェクト データソースを使用しています。Grid は、dataTable と同様に簡単にオブジェクトのコレクションにバインドできます。単純なシリアル化エンジンを使用してデータを保存/復元できます (XmlSerializer の実装はかなり簡単です)。基本的なオブジェクトを作成し、List または BindingList をデータセットとして使用し、必要に応じて backEnd でシリアル化/逆シリアル化します。

List と BindingList はどちらも Linq クエリをサポートしています。

後でデータベース保存を追加するのは、シリアル化コードの代わりに、オブジェクトをデータベースに保存するコードを書くのと同じくらい簡単で、フロントエンドにまったく変更を加える必要はありません。

「正しい」ソリューションに関する限り、それを行うには非常に多くの異なる方法があるため、最終的には個人の好み、実際の要件、および予想される将来の開発に依存します。データ操作が簡単なので、オブジェクトを使用してコーディングする方が簡単だと思いますが、データ操作を必要とせずに直接レコードを入力する場合は、データベースに直接アクセスする方が簡単です。それは、データと、それをどうするかによって異なります。

于 2013-02-18T20:00:03.300 に答える