Visual Studio を使用して .NET Framework アプリケーションにデータベースを作成し、テーブルを追加する

Note

データセットと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、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 の変更に関するページを参照してください。

Note

この記事の手順は、.NET Framework Windows フォーム プロジェクトにのみ適用され、.NET Core Windows フォーム プロジェクトには適用されません。

プロジェクトとローカル データベース ファイルを作成する

  1. 新しい Windows フォーム アプリ (.NET Framework) プロジェクトを作成し、SampleDatabaseWalkthrough という名前を付けます。

  2. メニュー バーで、 [プロジェクト]>[新しい項目の追加] の順に選択します。 小さなダイアログ ボックスとファイル名のボックスが表示される場合は、[すべてのテンプレートの表示] を選択します。

  3. 項目テンプレートの一覧で、下へスクロールし、 [サービス ベースのデータベース] を選択します。

    [新しい項目の追加] > [サービス ベースのデータベース]

    [新しい項目の追加] > [サービス ベースのデータベース]

  4. このデータベースに SampleDatabase.mdf という名前を付け、[追加] をクリックします。

データ ソースの追加

  1. [データ ソース] ウィンドウが開いていない場合は、Shift+Alt+D キーを押すか、メニュー バーで [表示]>[その他のウィンドウ]>[データ ソース] の順に選択して開きます。

  2. [データ ソース] ウィンドウで、 [新しいデータ ソースの追加] を選択します。

    Visual Studio で新しいデータ ソースを追加する

    Visual Studio で新しいデータ ソースを追加する

    データ ソース構成ウィザードが開きます。

  3. [データ ソースの種類の選択] ページで、 [データベース] を選択し、 [次へ] を選択します。

  4. [データベース モデルの選択] ページで、 [次へ] を選択して既定値 (データセット) を受け入れます。

  5. [データ接続の選択] ページで、ドロップダウン リストから SampleDatabase.mdf ファイルを選択し、 [次へ] を選択します。

  6. [アプリケーション構成ファイルに接続文字列を保存] ページで、 [次へ] を選択します。

  7. [データベース オブジェクトの選択] ページに、データベースにオブジェクトが含まれていないことを示すメッセージが表示されます。 [完了] を選択します。

データ接続のプロパティを表示する

データ接続の [プロパティ] ウィンドウを開くと、SampleDatabase.mdf ファイルのいくつかのプロパティを表示できます。

  • [表示]>[SQL Server オブジェクト エクスプローラー] の順に選択して (または Ctrl+\ キー、Ctrl+S キー)、[SQL Server オブジェクト エクスプローラー] ウィンドウを開きます。 [(localdb)\MSSQLLocalDB]>[データベース] の順に展開し、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 テーブルを作成する

  1. [サーバー エクスプローラー] または [SQL Server Object Browser] (SQL Server オブジェクト ブラウザー) で、[データ接続] のノードを展開し、SampleDatabase.mdf ノードを展開します。

  2. [テーブル] を右クリックし、 [新しいテーブルの追加] を選択します。

    [テーブル デザイナー] は、作成しているテーブルの 1 つの列を表す、1 つの既定の行のグリッドを開いて表示します。 行をグリッドに追加することによって、テーブルに列を追加します。

  3. グリッドで、次のエントリのそれぞれに行を追加します。

    列名 データ型 Null を許容
    CustomerID nchar(5) false (オフ)
    CompanyName nvarchar(50) false (オフ)
    ContactName nvarchar (50) true (オン)
    Phone nvarchar (24) true (オン)
  4. CustomerID 行を右クリックし、 [主キーの設定] を選択します。

  5. 既定の行 (Id) を右クリックし、 [削除] を選択します。

  6. スクリプト ペインの最初の行の次のサンプルのように更新して、Customers (顧客) をテーブルと名前を付けます:

    CREATE TABLE [dbo].[Customers]
    
  7. Customers テーブルにインデックス制約を追加します。 Phone 行の末尾にコンマを追加し、閉じかっこの前に次のサンプルを追加します。

    CONSTRAINT [PK_Customers] PRIMARY KEY ([CustomerID])
    

    次のような結果が表示されます。

    テーブル デザイナーと Customers テーブル

    テーブル デザイナーと Customers テーブル

  8. テーブル デザイナーの左上隅にある [更新] を選択するか、Shift+Alt+U キーを押します。

  9. [データベース更新のプレビュー] ダイアログ ボックスで、 [データベースの更新] を選択します。

    ローカル データベース ファイルに Customers テーブルが作成されます。

Orders テーブルを作成する

  1. 別のテーブルを追加し、次の表の各エントリの行を追加します。

    列名 データ型 Null を許容
    OrderID int false (オフ)
    CustomerID nchar(5) false (オフ)
    OrderDate datetime true (オン)
    OrderQuantity int true (オン)
  2. OrderID を主キーとして設定した後、既定の行を削除します。

  3. スクリプト ペインの最初の行の次のサンプルのように更新して、Orders (注文) をテーブルと名前を付けます:

    CREATE TABLE [dbo].[Orders]
    
  4. Customers テーブルにインデックス制約を追加します。 OrderQuantity 行の末尾にコンマを追加し、閉じかっこの前に次のサンプルを追加します。

    CONSTRAINT [PK_Orders] PRIMARY KEY ([OrderId])
    
  5. テーブル デザイナーの左上隅にある [更新] を選択するか、Shift+Alt+U キーを押します。

  6. [データベース更新のプレビュー] ダイアログ ボックスで、 [データベースの更新] を選択します。

    ローカル データベース ファイルに Orders テーブルが作成されます。 サーバー エクスプローラー[テーブル] ノードを展開すると、2 つのテーブルが表示されます。

    サーバー エクスプローラーで展開された [テーブル] ノード

    サーバー エクスプローラーで展開された [テーブル] ノード

    表示されない場合は、ツール バーの [更新] ボタンを押します。

外部キーを作成する

  1. Orders テーブルのテーブル デザイナー グリッドの右側にあるコンテキスト ペインで、 [外部キー] を右クリックし、 [新しい外部キーを追加] を選択します。

    Visual Studio のテーブル デザイナーで外部キーを追加する

    Visual Studio のテーブル デザイナーで外部キーを追加する

  2. 表示されるテキスト ボックスで、ToTable というテキストを Customers に置き換えます。

  3. T-SQL ペインで、次のサンプルに合わせて最後の行を更新します。

    CONSTRAINT [FK_Orders_Customers] FOREIGN KEY ([CustomerID]) REFERENCES [Customers]([CustomerID])
    
  4. テーブル デザイナーの左上隅にある [更新] を選択します (Shift+Alt+U キー)。

  5. [データベース更新のプレビュー] ダイアログ ボックスで、 [データベースの更新] を選択します。

    外部キーが作成されます。

テーブルにデータを読み込む

  1. サーバー エクスプローラーまたは SQL Server オブジェクト エクスプローラーで、サンプル データベースのノードを展開します。

  2. [テーブル] ノードのショートカット メニューを開き、 [最新の情報に更新] を選択した後、 [テーブル] ノードを展開します。

  3. Customers テーブルのショートカット メニューを開き、 [テーブル データの表示] または [データの表示] を選択します。

  4. 数人の顧客に任意のデータを追加します。

    顧客 ID には任意の 5 文字を指定できます。この手順では、後で使用するために、少なくとも 1 つを選択します。

  5. Orders テーブルのショートカット メニューを開き、 [テーブル データの表示] または [データの表示] を選択します。

  6. いくつかの注文のデータを追加します。 各行を入力するごとに、行がデータベースに保存されます。

    重要

    すべての注文 ID および注文数量が整数であり、各顧客 ID が、Customers テーブルの CustomerID 列で指定した値と一致することを確認します。

おめでとうございます。 これで、テーブルを作成し、外部キーを使用してそれらをリンクさせ、データを追加する方法がわかりました。