注
DataSet クラスと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初頭のレガシ .NET Framework テクノロジです。 このテクノロジは、ユーザーがデータを変更し、変更をデータベースに保持できるアプリに特に役立ちます。 データセットは実証済みの成功したテクノロジですが、新しい .NET アプリケーションには Entity Framework Core を使用することをお勧めします。 Entity Framework は、オブジェクト モデルとして表形式データを操作するより自然な方法を提供し、よりシンプルなプログラミング インターフェイスを備えています。
Visual Studio を使用して、SQL Server Express LocalDB でローカル データベース ファイルを作成および更新できます。 Visual Studio の SQL Server オブジェクト エクスプローラー ツール ウィンドウで Transact-SQL ステートメントを実行して、データベースを作成することもできます。 このトピックでは、テーブル デザイナーを使用して、 .mdf ファイルを作成し、テーブルとキーを追加します。
[前提条件]
このチュートリアルを完了するには、Visual Studio にインストールされている .NET デスクトップ開発およびデータ ストレージと処理ワークロードが必要です。 インストールするには、Visual Studio インストーラー を開き、変更したい Visual Studio のバージョンの横にある [変更] (または [その他の >変更])を選択します。 Visual Studio の変更に関するページを参照してください。
注
この記事の手順は、.NET Framework Windows フォーム プロジェクトにのみ適用され、.NET Core Windows フォーム プロジェクトには適用されません。
プロジェクトとローカル データベース ファイルを作成する
新しい Windows フォーム アプリ (.NET Framework) プロジェクトを 作成し、 SampleDatabaseWalkthrough という名前を付けます。
メニュー バーの [プロジェクト] > [新しい項目の追加] を選択します。 ファイル名のボックスが含まれた小さなダイアログ ボックスが表示される場合は、[ すべてのテンプレートを表示] を選択します。
項目テンプレートの一覧で、下にスクロールし、[ サービス ベースのデータベース] を選択します。
データベース SampleDatabase.mdfに名前を付け、[ 追加] を選択します。
データ ソースの追加
[データ ソース] ウィンドウが開いていない場合は、Shift キー+Alt+D キーを押すか、メニュー バーの [表示>その他の Windows>Data ソース] を選択して開きます。
[ データ ソース ] ウィンドウで、[ 新しいデータ ソースの追加] を選択します。
データ ソース構成ウィザードが開きます。
[ データ ソースの種類の選択 ] ページで、[ データベース ] を選択し、[ 次へ] を選択します。
[ データベース モデルの選択 ] ページで、[ 次へ ] を選択して既定値 (データセット) をそのまま使用します。
[ データ接続の選択 ] ページで、ドロップダウン リストで SampleDatabase.mdf ファイルを選択し、[ 次へ] を選択します。
[ アプリケーション構成ファイルへの接続文字列の保存 ] ページで、[ 次へ] を選択します。
[ データベース オブジェクトの選択] ページに、データベースにオブジェクトが含まれていないことを示すメッセージが表示されます。 を選択し、を完了します。
注意事項
実際のアプリケーションでは、「接続文字列と構成ファイル 説明されているように、接続文字列を安全に格納する必要があります。 最適なセキュリティを確保するには、パスワードを接続文字列に格納することに依存しない認証方法 (オンプレミスの SQL Server データベースの Windows 認証など) を使用します。 「接続文字列保存および編集する」を参照してください。
データ接続のプロパティを表示する
データ接続の [プロパティ] ウィンドウを開くと、 SampleDatabase.mdf ファイルの プロパティ の一部を表示できます。
[表示>SQL Server オブジェクト エクスプローラー (または Ctrl+\、Ctrl+S) を選択して、SQL Server オブジェクト エクスプローラー ウィンドウを開きます。 (localdb)\MSSQLLocalDB>Databases を展開し、SampleDatabase.mdfを右クリックして (完全なパスとして一覧表示される場合があります)、[プロパティ] を選択します。
または、そのウィンドウがまだ開いていない場合は、[ 表示>サーバー エクスプローラー] を選択することもできます。 [プロパティ] ウィンドウを開くには、[ データ接続 ] ノードを展開し、 SampleDatabase.mdfを右クリックし、[ プロパティ] を選択します。
ヒント
[データ接続] ノードを展開できない場合、またはSampleDatabase.mdf接続が一覧にない場合は、サーバー エクスプローラーのツール バーの [ データベースへの接続 ] ボタンを選択します。 [接続の追加] ダイアログ ボックスで、[データ ソース] で [Microsoft SQL Server データベース ファイル] が選択されていることを確認し、SampleDatabase.mdf ファイルを参照して選択します。 [OK] を選択して、接続の追加を完了します。
接続文字列を表示するには、ソリューション エクスプローラーで App.config ファイルを開きます。 次のコードのような connectionStrings 要素の下にエントリが表示されます。
<connectionStrings>
<add name="SampleDatabaseWalkthrough.Properties.Settings.SampleDatabaseConnectionString"
connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\SampleDatabase.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
テーブル デザイナーを使用してテーブルとキーを作成する
このセクションでは、2 つのテーブル、各テーブルの主キー、および数行のサンプル データを作成します。 また、外部キーを作成して、一方のテーブルのレコードがもう一方のテーブルのレコードにどのように対応するかを指定します。
Customers テーブルを作成する
サーバー エクスプローラーまたは SQL Server オブジェクト ブラウザーで、[データ接続] ノードを展開し、SampleDatabase.mdf ノードを展開します。
[テーブル] を右クリックし、[新しいテーブルの追加] を選択します。
テーブル デザイナーが開き、1 つの既定の行を含むグリッドが表示されます。これは、作成しているテーブル内の 1 つの列を表します。 グリッドに行を追加することで、テーブルに列を追加します。
グリッドで、次のエントリごとに行を追加します。
列名 データの種類 null を許可する CustomerIDnchar(5)False (解除済み) CompanyNamenvarchar(50)False (解除済み) ContactNamenvarchar (50)有効(選択) Phonenvarchar (24)有効(選択) CustomerID行を右クリックし、[主キーの設定] を選択します。既定の行 (
Id) を右クリックし、[削除] を選択 します。次の例に一致するようにスクリプト ウィンドウの最初の行を更新して、Customers テーブルに名前を付けます。
CREATE TABLE [dbo].[Customers]Customers テーブルにインデックス制約を追加します。
Phone行の末尾にコンマを追加し、終わりかっこの前に次のサンプルを追加します。CONSTRAINT [PK_Customers] PRIMARY KEY ([CustomerID])次のような内容が表示されます。
テーブル デザイナーの左上隅で、[更新] を選択するか、Shift+Alt+U キーを押します。
[ データベースの更新のプレビュー ] ダイアログ ボックスで、[ データベースの更新] を選択します。
Customers テーブルは、ローカル データベース ファイルに作成されます。
Orders テーブルを作成する
別のテーブルを追加し、次の表のエントリごとに行を追加します。
列名 データの種類 null を許可する OrderIDintFalse (解除済み) CustomerIDnchar(5)False (解除済み) OrderDatedatetime有効(選択) OrderQuantityint有効(選択) OrderID を主キーとして設定し、既定の行を削除します。
次のサンプルと一致するようにスクリプト ウィンドウの最初の行を更新して、Orders テーブルに名前を付けます。
CREATE TABLE [dbo].[Orders]Customers テーブルにインデックス制約を追加します。
OrderQuantity行の末尾にコンマを追加し、終わりかっこの前に次のサンプルを追加します。CONSTRAINT [PK_Orders] PRIMARY KEY ([OrderId])テーブル デザイナーの左上隅にある [更新] を選択するか、Shift キー+Alt+U キーを押します。
[ データベースの更新のプレビュー ] ダイアログ ボックスで、[ データベースの更新] を選択します。
Orders テーブルは、ローカル データベース ファイルに作成されます。 サーバー エクスプローラーで [テーブル] ノードを展開すると、次の 2 つのテーブルが表示されます。
表示されない場合は、[ 最新の情報に更新 ] ツール バー ボタンをクリックします。
外部キーを作成する
Orders テーブルのテーブル デザイナー グリッドの右側にあるコンテキスト ウィンドウで、[ 外部キー ] を右クリックし、[ 新しい外部キーの追加] を選択します。
表示されるテキスト ボックスで、 ToTable というテキストを Customers に置き換えます。
T-SQL ペインで、次のサンプルと一致するように最後の行を更新します。
CONSTRAINT [FK_Orders_Customers] FOREIGN KEY ([CustomerID]) REFERENCES [Customers]([CustomerID])テーブル デザイナーの左上隅にある [更新] (Shift+Alt+U) を選択します。
[ データベースの更新のプレビュー ] ダイアログ ボックスで、[ データベースの更新] を選択します。
外部キーが作成されます。
テーブルにデータを設定する
サーバー エクスプローラーまたは SQL Server オブジェクト エクスプローラーで、サンプル データベースのノードを展開します。
[テーブル] ノードのショートカット メニューを開き、[最新の情報に更新] を選択し、[テーブル] ノードを展開します。
Customers テーブルのショートカット メニューを開き、[ テーブル データの表示 ] または [ データの表示] を選択します。
一部の顧客に必要なデータを追加します。
顧客 ID として任意の 5 文字を指定できますが、この手順の後半で覚えておくことができる文字を少なくとも 1 つ選択してください。
Orders テーブルのショートカット メニューを開き、[ テーブル データの表示 ] または [ データの表示] を選択します。
一部の注文のデータを追加します。 各行を入力すると、データベースに保存されます。
Von Bedeutung
すべての注文 ID と注文数量が整数であり、各顧客 ID が Customers テーブルの CustomerID 列で指定した値と一致していることを確認します。
おめでとうございます! これで、テーブルを作成し、外部キーを使用してリンクし、データを追加する方法がわかっています。
関連コンテンツ
- Visual Studio でデータにアクセスする