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 フォーム プロジェクトには適用されません。
プロジェクトとローカル データベース ファイルを作成する
新しい Windows フォーム アプリ (.NET Framework) プロジェクトを作成し、SampleDatabaseWalkthrough という名前を付けます。
メニュー バーで、 [プロジェクト]>[新しい項目の追加] の順に選択します。 小さなダイアログ ボックスとファイル名のボックスが表示される場合は、[すべてのテンプレートの表示] を選択します。
項目テンプレートの一覧で、下へスクロールし、 [サービス ベースのデータベース] を選択します。
データベースに「SampleDatabase.mdf」という名前を付け、[追加] を選択します。
データ ソースの追加
[データ ソース] ウィンドウが開いていない場合は、Shift+Alt+D キーを押すか、メニュー バーで [表示]>[その他のウィンドウ]>[データ ソース] の順に選択して開きます。
[データ ソース] ウィンドウで、 [新しいデータ ソースの追加] を選択します。
データ ソース構成ウィザードが開きます。
[データ ソースの種類の選択] ページで、[データベース] を選択した後、[次へ] を選択します。
[データベース モデルの選択] ページで、 [次へ] を選択して既定値 (データセット) を受け入れます。
[データ接続の選択] ページで、ドロップダウン リストから SampleDatabase.mdf ファイルを選択し、 [次へ] を選択します。
[アプリケーション構成ファイルに接続文字列を保存] ページで、 [次へ] を選択します。
[データベース オブジェクトの選択] ページに、データベースにオブジェクトが含まれていないことを示すメッセージが表示されます。 [完了] を選択します。
注意事項
実際のアプリケーションでは、「接続文字列と構成ファイル」で説明されているように、接続文字列を安全に保存する必要があります。 最高のセキュリティを得るには、オンプレミスの SQL Server データベースの Windows 認証など、接続文字列へのパスワードの格納に依存しない認証方法を使用します。 「接続文字列を保存および編集する」を参照してください。
データ接続のプロパティを表示する
データ接続の [プロパティ] ウィンドウを開くと、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 テーブルを作成する
[サーバー エクスプローラー] または [SQL Server Object Browser] (SQL Server オブジェクト ブラウザー) で、[データ接続] のノードを展開し、SampleDatabase.mdf ノードを展開します。
[テーブル] を右クリックし、 [新しいテーブルの追加] を選択します。
[テーブル デザイナー] は、作成しているテーブルの 1 つの列を表す、1 つの既定の行のグリッドを開いて表示します。 行をグリッドに追加することによって、テーブルに列を追加します。
グリッドで、次のエントリのそれぞれに行を追加します。
列名 データ型 Null を許容 CustomerID
nchar(5)
false (オフ) CompanyName
nvarchar(50)
false (オフ) ContactName
nvarchar (50)
true (オン) Phone
nvarchar (24)
true (オン) CustomerID
行を右クリックし、 [主キーの設定] を選択します。既定の行 (
Id
) を右クリックし、 [削除] を選択します。スクリプト ペインの最初の行の次のサンプルのように更新して、Customers (顧客) をテーブルと名前を付けます:
CREATE TABLE [dbo].[Customers]
Customers テーブルにインデックス制約を追加します。
Phone
行の末尾にコンマを追加し、閉じかっこの前に次のサンプルを追加します。CONSTRAINT [PK_Customers] PRIMARY KEY ([CustomerID])
次のような結果が表示されます。
テーブル デザイナーの左上隅にある [更新] を選択するか、Shift+Alt+U キーを押します。
[データベース更新のプレビュー] ダイアログ ボックスで、 [データベースの更新] を選択します。
ローカル データベース ファイルに Customers テーブルが作成されます。
Orders テーブルを作成する
別のテーブルを追加し、次の表の各エントリの行を追加します。
列名 データ型 Null を許容 OrderID
int
false (オフ) CustomerID
nchar(5)
false (オフ) OrderDate
datetime
true (オン) OrderQuantity
int
true (オン) 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 テーブルのショートカット メニューを開き、 [テーブル データの表示] または [データの表示] を選択します。
いくつかの注文のデータを追加します。 各行を入力するごとに、行がデータベースに保存されます。
重要
すべての注文 ID および注文数量が整数であり、各顧客 ID が、Customers テーブルの CustomerID 列で指定した値と一致することを確認します。
おめでとうございます。 これで、テーブルを作成し、外部キーを使用してそれらをリンクさせ、データを追加する方法がわかりました。