0

データ サーバーを使用せずにクライアント コンピューターにデータを保存するにはどうすればよいですか?

C# Windows アプリがあり、ユーザーのコンピューターにデータを保存したいと考えています。SQL Server や Access などのデータ サーバーは使用したくありません。ユーザーはこのデータを読み取ることができず、このデータは行を持つテーブルのように構造化されています。

データを保存する最良の方法は何ですか? そして、このケースをどのように処理できますか?

このデータを編集して更新したいことに注意してください。

私のデータ型はすべて文字列であり、システムの再起動後もアプリケーションが機能するためにデータを利用できる必要があるため、メモリ内にのみ保存した​​くありません。

4

5 に答える 5

1

明確にするために編集されています。

2 つの質問があります。

  1. データをどこに保存しますか? %APPDATA% はアプリケーション固有のデータに適し、%UserProfile% はユーザー固有のデータに適しています。
  2. どの形式とファイルの種類を使用する必要がありますか? XML、CSV などの構造化または非構造化形式を含む、さまざまな方法で保存できます。ユーザーがコンテンツを読み取れないようにする場合は、何らかの方法で暗号化できます。SQLCE や SQLLite などのローカル データベース タイプの使用を選択することもできます。これにより、必要なセキュリティが提供される可能性があります。
于 2012-09-11T14:53:14.513 に答える
0

データベースの軽量なファイル ベースバージョンであるSQL Server Compact を使用することをお勧めします。このオプションを使用するために、ユーザーが SQL Server をインストールする必要はありません。

これは、LINQ を使用してファイル内のデータを操作し、Entity Framework などのテクノロジを使用して非常に簡単にクエリを実行できるため、私の好みのオプションです。実際、POCO を使用してアプリケーション エンティティを表すことができ、Entity Framework がデータベースへの情報の読み取りと書き込みを処理します。

Entity Framework を使用している場合は、構成ファイルを使用してデータベースの作成を自動化できます。初めてエンティティを使用すると、データベース ファイルが自動的に生成されます (これは構成可能です)。

<configuration>
    <connectionStrings>
        <add name="DatabaseContext"
             providerName="System.Data.SqlServerCe.4.0"
             connectionString="Data Source=C:\Paths\To\Location\DBName.abc"/>
    </connectionStrings>
</configuration>

システム上の特別なフォルダーの 1 つを使用して、アプリケーションのユーザーに対してこれを透過的にすることをお勧めします。

また、任意の拡張子 (DBName.sdf の代わりに DBName.abc) を付けて、ファイルをアプリケーションに関連付けることができることにも注意してください。

この方法を使用すると、ファイル全体を一度にメモリにロードする必要がないという利点もあります (つまり、データをクエリしてデータのサブセットを返すことができます)。ファイルへのオブジェクト。

于 2012-09-24T16:14:59.897 に答える
0

DB を使用したくない場合は、かなり標準的なアプローチである XML を使用できます。

PS: 多くのユーザーに同じ XML を使用させたい場合は、操作ごとにファイルをロックして、同時読み取り/書き込みエラーを回避します。

そして注目すべき利点は、LinqToXML を使用してクエリを実行できることです:)

于 2012-09-11T14:50:58.200 に答える
0

SQL Server Compact を使用できます。これはファイル内の DB です。

また

よろしければ、よ

于 2012-09-11T14:51:19.817 に答える
-1

これはWindowsアプリであるため、アプリがインストールされているフォルダーを作成し、MS Excelファイルを作成して、そのExcelファイルにデータを保存できます。

于 2012-09-11T14:55:00.113 に答える