My portfolio

Menu▼

  • Top
  • About
  • Portfolio
  • Diary
  • Privacy policy
  • [C#]VisualStudioからSQLServerに接続する方法

    概要

    SQLserver(以下SQL)の接続文字列を使うと、プログラム上からデータベースの機能を利用することができる。 今回は、VisualStudio2022を用い、プログラム(c#)上からSQLに接続する方法ついて記述する。

    今回は、VisualStudio2022を用い、プログラム(c#)上からSQLに接続する方法ついて記述する。

    SQLの接続文字列の取得

    SQLへ接続するには接続文字列を取得する必要がある。PCにSQLを導入した際に表示された物を利用することもできるが、今回はVisualStudio上で取得する。

    そのためには、事前の準備として、SQLの名前を調べておく必要がある。
    まずSQLServerManagementStudioを起動し、オブジェクトエクスプローラー上のデータベースを右クリックしプロパティ画面を表示する。

    次に画面左下の接続プロパティをクリックする。クリック後に表示される画面の、サーバー名、データベース名が接続に必要な情報である。

    SQLサーバーのプロパティ画面

    今回はサーバー名、データベース名はそれぞれ、MIKAN\SQLEXPRESS04、masterである。

    サーバー名表示画面

    次にVisualStudioを起動し、エディタ画面で、ツール→データベースへの接続を選択し接続の追加画面を開く。

    SQLサーバーへの接続

    ここで、サーバー名と、データベース名の欄に先に調べたデータベース名、サーバー名を記入する。

    サーべーへの接続設定

    次にサーバーにログオンするという項目の認証で、windows認証を選択し、サーバー証明書を信頼するにチェックを入れる。
    その後、テスト接続をクリックし、’テスト接続に成功しました’が表示されれば成功である。

    次に、サーバーエクスプローラー上で、データベースを右クリックしプロパティ画面を出す。

    サーバーエクスプローラー

    プロパティ画面の接続文字列という項目が必要な接続文字列である。

    今回は’Data Source=MIKAN\SQLEXPRESS04;Initial Catalog=master;Integrated Security=True;Trust Server Certificate=True’である。

    SQLへの接続方法

    この項では、取得した接続文字列をもとにSQLに接続する方法について述べる。 まずは、接続に必要なライブラリを取得する。

    ツールからソリューションのNuGetパッケージの管理をクリックする。

    NuGetパッケージ

    次に参照を選び、System.Data.SqlClientを探し出しクリックする。

    NuGET検索画面

    インストール画面で、プロジェクトとSQLにチェックを入れたのちインストールをクリックする。これでインストールは終了である。

    Nugetインストール

    次に先に取得した接続文字列を用い、SqlConnection connection = new SqlConnection("Data Source=MIKAN\\SQLEXPRESS04;Initial Catalog=master;Integrated Security=True")を記述するとSQLに接続することができる。(下記コード)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient;//これを追加 namespace SQL { internal class Program { static void Main(string[] args) { //接続先指定 ここで接続文字列を使う ただし;Trust Server Certificate=Trueは削除する using (SqlConnection connection = new SqlConnection("Data Source=MIKAN\\SQLEXPRESS04;Initial Catalog=master;Integrated Security=True")) { try { //ここで接続を行う connection.Open(); } catch { Console.WriteLine("接続失敗"); return; } //接続後の処理をここに書く Console.WriteLine("接続成功"); } } } }

    なお接続文字列のうち、;Trust Server Certificate=Trueの部分は削除する必要がある。