データベースをアプリケーションに永続的に追加するC#

ライアン・エセックス

コンピューターをActiveDirectoryドメインに追加するソフトウェアを作成しようとしています。私が満たす必要がある1つの基準は、マシンを適切なOUに追加する必要があることです。これを行うために、アドレスを含むサイトの場所のセットリストがあります(これがOUを決定する方法です)。このリストは現在ACCDBファイルの形式ですが、アクセスリストは変更されないため、これをアプリケーションに含めたいと思います。

私が目にするものはすべて、DBファイルをサーバーやローカルマシンなどの別の場所に接続することを望んでいます。私の好みは、DBファイルを参照またはプログラムの.exeファイル自体の内部の何かとして使用することです。私は恐ろしく明白な何かを見逃しているかもしれませんが、それは数日間私をいじっているので、私は助けを求めています。

明確にするために、このソフトウェアは自己完結型でなければなりません(インストーラーなし)。また、ドメインに参加するための適切なOUを決定できる必要があります(PCがドメインに参加するまで共有にアクセスできません)。また、間違いを避けるために十分にユーザーフレンドリーである必要があります。つまり、正しい場所に移動する必要がある複数のファイルをコピーして配布することは避けたいということです。これが、ACCDBファイルをオンザフライで使用するためにアプリケーションに埋め込みたい理由です。

Joel Coehoorn

これは静的データであるため、作業ははるかに簡単になります。このデータの永続化、プログラムへの変更の再利用、ユーザーが誤って何かを削除するなどの心配はありません。アプリケーションに埋め込まれたリソース使用するだけで済みます。リンクでは、画像ファイルを使用して例に従ってください。テキストファイルの例では、データベースが破損します。

ただし、これを行うにはまだトリックがあります。問題は、Windowsに含まれているAccessエンジンがデータベースをリソースとして開くことができないため、このファイルをローカルハードドライブに保存する必要があることです。良いニュースは、プログラムが必要に応じてこれを実行し、ユーザーに特定の場所にファイルを配置するように求めるのではなく、それが正しいことを確認できるため見た目ほど悪くはないということです。

解凍するときにファイルを置く場所については...最も安全で最適な場所はアプリケーションデータフォルダです。この呼び出しの結果を確認することで、このフォルダーのパスを簡単に取得できます。

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

これは、あなたの標準的な特権ユーザーがパス与える行う書き込みアクセス権を持って、ユーザーに関係なく。

要約すれば:

  1. ACCDBをリソースとして埋め込みます。
  2. プログラムが実行されたら、Environmentオブジェクトを使用してアプリケーションデータパスを取得します。
  3. FileStream#2からのパスに基づいてファイルに書き込むためにを開きます
  4. 埋め込みリソースをC#でStreamオブジェクトとして開きます
  5. #4からのストリームを#3からのストリームにコピーします。テキストではなく、バイナリデータを対象としたメカニズムを使用してください。
  6. ストリームを閉じる/破棄して、ファイルにロックが残らないようにします。これは、usingブロックを適切な場所に配置するのと同じくらい簡単です。
  7. Webで入手可能な数千のチュートリアルまたは例のいずれかをガイドとして使用して、作成したファイルへの通常のAccess接続を開きます。

このように、最終的な.exeファイルを配布するだけで、ユーザーはデータベースを使用するための特別なアクセス許可を必要としません。ユーザーがファイルを削除しても心配する必要はありません。それはまだアプリケーションに埋め込まれており、起動するたびに必要に応じて再作成されます。

欠点は、賢いユーザーがデータベースを操作して、望ましくないOUになってしまう可能性があることです。これについて心配する必要がある場合は、埋め込みデータを使用するのではなく、プログラムにWebサービスをチェックさせることを検討する必要があります。埋め込んだものはすべて、最終的にエンドユーザーが変更できます。プログラムを再構築したり再配布したりすることなく、組織の進化に合わせてマッピングデータを更新できるため、Webサービスも優れています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

外部SQLServerデータベースをASP.NETMVCアプリケーションに追加する方法(c#)

分類Dev

外部SQLServerデータベースをASP.NETMVCアプリケーションに追加する方法(c#)

分類Dev

Androidアプリケーションにデータベースを追加する

分類Dev

.mdbデータベースをC#デスクトップアプリケーションに接続する必要があります

分類Dev

C#アプリケーションをAWS EC2データベースに安全に接続するにはどうすればよいですか?

分類Dev

Bequeath プロトコルを使用して ManagedDataAccess を使用して C# Windows アプリケーションで Oracle データベースに接続する

分類Dev

AndroidアプリケーションからFirebaseデータベースにデータを追加する方法

分類Dev

C#複数のアプリケーションを使用してEntityFrameworkを使用して単一のデータベースに接続する

分類Dev

ReactjsアプリケーションをMongoDBデータベースに適切に接続する方法

分類Dev

NameCheapを使用してデータベースをアプリケーションに接続する

分類Dev

Spring BootアプリケーションをMySQLデータベースに接続する方法は?

分類Dev

ApacheTomcatを使用してJSPWebアプリケーションのデータベースに接続する

分類Dev

データベースをAngularWebアプリケーションに接続する方法は?

分類Dev

ClusterpointデータベースをAndroidアプリケーションに接続する方法

分類Dev

Spring DataRestアプリケーションにデータベース認証を追加する

分類Dev

c#アプリケーションからMagentoデータベースに接続する方法はありますか?

分類Dev

C#アプリケーションのインストーラーを作成するときに使用するデータベース

分類Dev

C#アプリケーションにデータを保存する

分類Dev

データベースをセットアップしてデジタルオーシャンのNodeJSアプリケーションに接続する方法

分類Dev

C#を使用してSQLデータベースにデータを送信するVisual Studio Webアプリケーションの問題(cmd.ExecuteNonQuery();)

分類Dev

URLに基づいてlaravelアプリケーションをデータベースに接続します

分類Dev

Web mysqlデータベースをC#Windowsフォームアプリケーションに接続する方法を理解しています

分類Dev

データベースからC#(チャットアプリケーション)に送信されるイベントをキャッチする方法

分類Dev

AndroidアプリケーションからOdooデータベースに接続する方法

分類Dev

Webアプリケーションで分散データベースに接続する方法は?

分類Dev

データベースにデータを追加したためにアプリケーションがクラッシュする

分類Dev

C#とデータベースを使用してクイズアプリケーションを作成する

分類Dev

AccessデータベースとCrystalReportsを使用してC#アプリケーションを公開する

分類Dev

.exe c#アプリケーションに.sqliteデータベースを埋め込む

Related 関連記事

  1. 1

    外部SQLServerデータベースをASP.NETMVCアプリケーションに追加する方法(c#)

  2. 2

    外部SQLServerデータベースをASP.NETMVCアプリケーションに追加する方法(c#)

  3. 3

    Androidアプリケーションにデータベースを追加する

  4. 4

    .mdbデータベースをC#デスクトップアプリケーションに接続する必要があります

  5. 5

    C#アプリケーションをAWS EC2データベースに安全に接続するにはどうすればよいですか?

  6. 6

    Bequeath プロトコルを使用して ManagedDataAccess を使用して C# Windows アプリケーションで Oracle データベースに接続する

  7. 7

    AndroidアプリケーションからFirebaseデータベースにデータを追加する方法

  8. 8

    C#複数のアプリケーションを使用してEntityFrameworkを使用して単一のデータベースに接続する

  9. 9

    ReactjsアプリケーションをMongoDBデータベースに適切に接続する方法

  10. 10

    NameCheapを使用してデータベースをアプリケーションに接続する

  11. 11

    Spring BootアプリケーションをMySQLデータベースに接続する方法は?

  12. 12

    ApacheTomcatを使用してJSPWebアプリケーションのデータベースに接続する

  13. 13

    データベースをAngularWebアプリケーションに接続する方法は?

  14. 14

    ClusterpointデータベースをAndroidアプリケーションに接続する方法

  15. 15

    Spring DataRestアプリケーションにデータベース認証を追加する

  16. 16

    c#アプリケーションからMagentoデータベースに接続する方法はありますか?

  17. 17

    C#アプリケーションのインストーラーを作成するときに使用するデータベース

  18. 18

    C#アプリケーションにデータを保存する

  19. 19

    データベースをセットアップしてデジタルオーシャンのNodeJSアプリケーションに接続する方法

  20. 20

    C#を使用してSQLデータベースにデータを送信するVisual Studio Webアプリケーションの問題(cmd.ExecuteNonQuery();)

  21. 21

    URLに基づいてlaravelアプリケーションをデータベースに接続します

  22. 22

    Web mysqlデータベースをC#Windowsフォームアプリケーションに接続する方法を理解しています

  23. 23

    データベースからC#(チャットアプリケーション)に送信されるイベントをキャッチする方法

  24. 24

    AndroidアプリケーションからOdooデータベースに接続する方法

  25. 25

    Webアプリケーションで分散データベースに接続する方法は?

  26. 26

    データベースにデータを追加したためにアプリケーションがクラッシュする

  27. 27

    C#とデータベースを使用してクイズアプリケーションを作成する

  28. 28

    AccessデータベースとCrystalReportsを使用してC#アプリケーションを公開する

  29. 29

    .exe c#アプリケーションに.sqliteデータベースを埋め込む

ホットタグ

アーカイブ