C# の SQL 接続文字列
 
このチュートリアルでは、C# プログラミング言語の接続文字列機能を使用してさまざまな機能を実行する方法について説明します。
どのプログラミング言語でも、データベースからデータを取得できる必要があります。 データベースを操作できることは、どのプログラミング言語においても絶対的な要件です。
これは C# にも当てはまります。 さまざまなデータベースに対応しています。
Oracle や Microsoft SQL Server など、多くのデータベースを使用できます。 始める前に、データベース接続の基礎を明確に理解する必要があります。
C# でのデータベース接続の基礎
C# と .Net はどちらもほとんどのデータベースと互換性があり、Oracle と Microsoft SQL Server が最も一般的な例です。 ただし、データベースを操作する背後にある方法論は、すべてのデータベースでほぼ同様のパターンに従います。
以下は、すべてのデータベースで共有されるデータベースを操作する際に適用される原則の一部です。
- 
接続文字列- 接続は、データベースに含まれるデータを操作する際の最初のステップです。 以下にリストされているパラメーターは、データベースへの接続に不可欠な部分です。C# が接続文字列を理解するには、接続文字列に関する正確な情報を提供する必要があります。 次の要素は、接続文字列のコンポーネントを構成します。 1.1 データ ソース- これは、データベースが保存されているサーバーの名前で、データ ソースとも呼ばれます。 この特定の例では、(LocalDB)\MSSQLLocalDBとして指定されたコンピューターに保存されます。
 1.2初期カタログ- データベースの名前は、基準として初期カタログを使用して決定されます。 接続を確立する必要があるデータベースの名前は、考慮すべき最初の重要な側面です。一度に 1つの接続でアクセスできるデータベースは 1つだけです。 
- 
SQL コマンド- ユーザーは、C# のSqlCommandを介してデータベースにコマンドを送信するだけでなく、クエリを実行することもできます。 SQL コマンドは、SQL 接続を表すオブジェクトによって提供されます。ExecuteReaderはクエリの結果に使用されるメソッドであり、ExecuteNonQueryはinsert、update、およびdeleteコマンドに使用されるメソッドです。 たとえば、次の例で使用されている接続文字列は次のとおりです。
SqlConnection con = new SqlConnection(
    @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog= ConStringExample; Integrated Security=True");
C# での SQL 接続文字列の例
    
ここで、データベースへの接続を確立するために維持する必要があるものの簡単な例を見てみましょう。 このデモでは、接続文字列を使用してデータベースに接続し、ボタンを使用して ConStringExample というデータベースに Name と Designation を挿入します。
- 
開始するには、新しい Windows Formプロジェクトを作成し、任意の名前を付けます。 この例では、chsarpConnectionStringByZeeshanという名前を付けています。 
- 
2つのラベルを使用し、 NameおよびDesignationというラベルの付いたテキストボックスを利用し、nametextBoxおよびdesigtextBoxフィールドとして名前を付けます。 
- 
ラベルとテキストボックスを利用した後、次のステップは Add Dataというラベルとaddbtnという名前のボタンを含めることです。 このボタンをクリックすると、データがデータベースに追加されます。 
フォームが完全に準備されたので、次はデータの追加ボタンのコードを作成します。
- 
まず、次のライブラリをインポートする必要があります。 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;
- 
データベースとの接続を確立するには、以下に示す接続文字列を利用してデータベース間の接続を作成します。 SqlConnection con = new SqlConnection( @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog= ConStringExample; Integrated Security=True");
- 
それでは、 SqlCommand型のオブジェクトを作成し、cmdという名前を付けましょう。SqlCommand cmd;
- 
データの追加ボタンをダブルクリックします。 これにより、コードを記述する新しいイベントが作成されます。 
- 
次に、 SqlCommandを使用して、準備したinsertクエリをパラメーターとして渡します。 これにより、提供されたテーブルにデータが挿入されます。SqlCommand cmd = new SqlCommand("insert into Data1 (Name, Designation) values ('" + nametextBox.Text + "','" + desigtextBox.Text + "')", con); cmd.ExecuteNonQuery();
- 
データが正常に挿入されると、データが挿入されたことを示すメッセージが表示されます。 
```c#
MessageBox.Show("Data inserted successfully");
```
- 
最後のステップでは、接続を閉じてテキスト ボックスをクリアします。 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();
    }
  }
}
出力:

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