C# の SQL 接続文字列

Muhammad Zeeshan 2024年2月15日
  1. C# でのデータベース接続の基礎
  2. C# での SQL 接続文字列の例
C# の SQL 接続文字列

このチュートリアルでは、C# プログラミング言語の接続文字列機能を使用してさまざまな機能を実行する方法について説明します。

どのプログラミング言語でも、データベースからデータを取得できる必要があります。 データベースを操作できることは、どのプログラミング言語においても絶対的な要件です。

これは C# にも当てはまります。 さまざまなデータベースに対応しています。

Oracle や Microsoft SQL Server など、多くのデータベースを使用できます。 始める前に、データベース接続の基礎を明確に理解する必要があります。

C# でのデータベース接続の基礎

C# と .Net はどちらもほとんどのデータベースと互換性があり、Oracle と Microsoft SQL Server が最も一般的な例です。 ただし、データベースを操作する背後にある方法論は、すべてのデータベースでほぼ同様のパターンに従います。

以下は、すべてのデータベースで共有されるデータベースを操作する際に適用される原則の一部です。

  1. 接続文字列 - 接続は、データベースに含まれるデータを操作する際の最初のステップです。 以下にリストされているパラメーターは、データベースへの接続に不可欠な部分です。

    C# が接続文字列を理解するには、接続文字列に関する正確な情報を提供する必要があります。 次の要素は、接続文字列のコンポーネントを構成します。

    1.1 データ ソース - これは、データベースが保存されているサーバーの名前で、データ ソースとも呼ばれます。 この特定の例では、(LocalDB)\MSSQLLocalDB として指定されたコンピューターに保存されます。
    1.2 初期カタログ - データベースの名前は、基準として初期カタログを使用して決定されます。 接続を確立する必要があるデータベースの名前は、考慮すべき最初の重要な側面です。

    一度に 1つの接続でアクセスできるデータベースは 1つだけです。

  2. SQL コマンド - ユーザーは、C# の SqlCommand を介してデータベースにコマンドを送信するだけでなく、クエリを実行することもできます。 SQL コマンドは、SQL 接続を表すオブジェクトによって提供されます。

    ExecuteReaderはクエリの結果に使用されるメソッドであり、ExecuteNonQueryinsertupdate、およびdeleteコマンドに使用されるメソッドです。 たとえば、次の例で使用されている接続文字列は次のとおりです。

SqlConnection con = new SqlConnection(
    @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog= ConStringExample; Integrated Security=True");

C# での SQL 接続文字列の例

ここで、データベースへの接続を確立するために維持する必要があるものの簡単な例を見てみましょう。 このデモでは、接続文字列を使用してデータベースに接続し、ボタンを使用して ConStringExample というデータベースに NameDesignation を挿入します。

  1. 開始するには、新しい Windows Form プロジェクトを作成し、任意の名前を付けます。 この例では、chsarpConnectionStringByZeeshan という名前を付けています。

    新しい Windows フォームを作成する

  2. 2つのラベルを使用し、Name および Designation というラベルの付いたテキストボックスを利用し、nametextBox および desigtextBox フィールドとして名前を付けます。

    winform へのラベルとテキストボックス

  3. ラベルとテキストボックスを利用した後、次のステップは Add Data というラベルと addbtn という名前のボタンを含めることです。 このボタンをクリックすると、データがデータベースに追加されます。

    winformにボタンを追加

フォームが完全に準備されたので、次はデータの追加ボタンのコードを作成します。

  1. まず、次のライブラリをインポートする必要があります。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
  2. データベースとの接続を確立するには、以下に示す接続文字列を利用してデータベース間の接続を作成します。

    SqlConnection con = new SqlConnection(
        @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog= ConStringExample; Integrated Security=True");
    
  3. それでは、SqlCommand 型のオブジェクトを作成し、cmd という名前を付けましょう。

    SqlCommand cmd;
    
  4. データの追加 ボタンをダブルクリックします。 これにより、コードを記述する新しいイベントが作成されます。

    ボタンイベント追加

  5. 次に、SqlCommand を使用して、準備した insert クエリをパラメーターとして渡します。 これにより、提供されたテーブルにデータが挿入されます。

    SqlCommand cmd = new SqlCommand("insert into Data1 (Name, Designation) values ('" +
                                        nametextBox.Text + "','" + desigtextBox.Text + "')",
                                    con);
    cmd.ExecuteNonQuery();
    
  6. データが正常に挿入されると、データが挿入されたことを示すメッセージが表示されます。

    MessageBox.Show("Data inserted successfully");
    
  7. 最後のステップでは、接続を閉じてテキスト ボックスをクリアします。

    con.Close();
    nametextBox.Clear();
    desigtextBox.Clear();
    

完全なソース コード:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace chsarpConnectionStringByZeeshan {
  public partial class Form1 : Form {
    SqlConnection con = new SqlConnection(
        @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog= ConStringExample; Integrated Security=True");
    SqlCommand cmd;

    public Form1() {
      InitializeComponent();
    }

    private void addbtn_Click(object sender, EventArgs e) {
      con.Open();
      SqlCommand cmd = new SqlCommand("insert into Data1 (Name, Designation) values ('" +
                                          nametextBox.Text + "','" + desigtextBox.Text + "')",
                                      con);
      cmd.ExecuteNonQuery();
      MessageBox.Show("Data inserted successfully");
      con.Close();
      nametextBox.Clear();
      desigtextBox.Clear();
    }
  }
}

出力:

C# の SQL 接続文字列

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn