0

SQL Server 2008 Expressを使用してC#プログラムを作成しました。

C#アプリケーションを正しく実行するには、最初にデータベーステーブルに存在する必要のあるデータがいくつかあります。

C#アプリケーションを初めて実行するときに、このデータをテーブルに転送したいと思います。

ただし、このSQLデータ(レコードデータ)をC#コードから読み取らないようにします(ハードコードされたC#コードからこのデータをロードしたくありません)。

SQL Serverはレコードデータをどのように保存し、初期データをデータベースに転送するにはどうすればよいですか?

4

3 に答える 3

0

SQL の挿入/作成スクリプトを少なくとも部分的にどこかにハードコーディングする必要があります。アプリのディレクトリにある SQL スクリプト (ユーザーが改ざんする可能性があるためお勧めしません) またはアプリケーションのリソース (ユーザーが EXE または DLL を 16 進数で編集する必要があるため、もう少し安全です) のいずれかです。

これを試しましたか?http://social.msdn.microsoft.com/Forums/en/adodotnetdataproviders/thread/43e8bc3a-1132-453b-b950-09427e970f31

于 2012-11-26T22:10:16.717 に答える
0

あなたの質問はとても単純で、プログラムを実行する前にテーブルに記入したいと思います。簡単に、SQL Server Management Studio を開いてインスタンス名で接続し、データベース リストを展開して、作成したデータベースを見つけます。それを展開し、テーブル ツリーでデータを追加するテーブルを見つけます。それを右クリックします。編集する

また、Redgateにはデータジェネレータと呼ばれるテーブルを埋めるための製品があり、テーブルに非常に多くのデータを入力するために使用できます

于 2012-11-26T22:13:20.443 に答える
0

アプリケーションが機能するために存在するデータベースに依存しないようにします。おそらく良い考えではないデータベースに自分自身を結合しています。依存しているテーブルを埋めるストアド プロシージャをアプリケーションから実行できると思いますか? そうすれば、DB 作成コードはアプリケーションに存在しません。ただし、これは、アプリケーションが正しく機能するためにデータベースに依存していることを意味します。

2 つのプランのうちの 1 つをお勧めします。後者の方がクリーンです。

プラン1

  • アプリケーションが動作するために必要なすべてのデータを作成して挿入し、これをストアド プロシージャに配置する SQL スクリプトを作成します。
  • アプリケーションが初めて起動すると、プログラムが以前に実行されたかどうかを確認するために構成ファイルがチェックされます。実行されていない場合は、ストアド プロシージャを実行して必要なデータを作成します。
  • ストアドプロシージャがすでに実行されているかどうかを示す外部構成ファイル(パスワードで保護されている可能性があります)を変更します。単純なブール値である可能性があります
  • その後アプリケーションが実行されるたびに、それが以前に実行されたかどうかを確認し、以前に実行された場合はストアド プロシージャを実行しません。

プラン2

  • アプリケーションが動作するために必要なすべてのデータを作成して挿入し、これをストアド プロシージャに配置する SQL スクリプトを作成します。
  • インストーラーを使用して、データベースを作成するためのカスタム アクションでアプリケーションをデプロイします。こちらで説明します
于 2012-11-26T22:01:51.023 に答える