C# で SQL データベースを作成する

Saad Aslam 2023年10月12日
C# で SQL データベースを作成する

この記事では、データを読み書きできるように、SQL データベースとその中にテーブルを構築する方法の概要を説明します。

SQL データベースを作成する手順

以下は、SQL データベースを作成する手順です。

  • SQL Management Studio を起動して開始します。
  • 接続するには、(LocalDB)MSSQLLocalDB のようなサーバー名を入力し、Connect ボタンをクリックする必要があります。
  • 新しいデータベースを作成するには、左パネルのデータベース アイコンを右クリックし、コンテキスト メニューから [新しいデータベース] を選択します。 そして最後に、名前を付けます。
  • その後、ドロップダウン メニューから New Query を選択し、次のようにクエリを作成します。
    use readwrite
    create table mydata (id int primary key identity(1,1),myname varchar(50),Email varchar(50),phone varchar(50))
    select * from mydata
    

Microsoft Visual Studio で Windows フォームを作成する

Microsoft Visual Studio では、最初に新しいプロジェクトを作成する必要があります。 [プロジェクトの種類] というラベルの付いたドロップダウン オプションから、[Windows フォーム アプリケーション C#] を選択します。

2つのファイルを含むフォームが生成されます。1つは form.cs という名前で、もう 1つは form.cs (デザイン) です。 デザイン ファイルに 3つのラベルを追加し、それらを nameTxtemailTxt、および phoneTxt と呼びます。

それぞれに NameEmailPhone# という単語をそれぞれ入力します。 プロジェクトを保存します。

2つのボタンを作成し、getDatasaveData という名前を付ける必要があります。 ボタンに表示されるテキスト ボックスに、Save Data と Get Data を入力します。

さらに、データ グリッド ビューをフォームに追加する必要があります。 このグリッド ビューは、データベース内の既存のテーブルからデータを取得し、テーブルの内容をすべて出力する必要があります。

これは、完成したばかりのフォームを視覚的に表したものです。

C# SQL データベースの作成 - 空のフォーム

関数を実装する

まず、SqlDataAdapter 型の変数を作成し、da という名前を付けます。 これは、データベースに格納されているテーブルからデータを取得するために使用するものです。

SqlDataAdapter da = new SqlDataAdapter(
    "SELECT \* FROM mydata",
    @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog=readwrite; Integrated Security=True");

次に、con という名前が付けられる SqlConnection 型のオブジェクトを使用してデータベース接続を構築します。 ここでは、データ ソース、データベース名、および統合セキュリティを提供します。

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

ここで、[保存] ボタンのコードを作成します。 まず、機能の実行を開始できるように、データベースとの接続を開始します。

テキスト ボックスからデータを収集し、SqlCommand オブジェクトに添付する挿入クエリを使用して提供されたデータベースに保存します。 その後、データが正常に入力されたかどうかを確認するダイアログ ボックスが表示されます。

private void Savebtn_Click(object sender, EventArgs e) {
  con.Open();
  cmd = new SqlCommand("insert into mydata values ('" + nametxt.Text + "','" + emailtxt.Text +
                           "','" + phonetxt.Text + "')",
                       con);
  cmd.ExecuteNonQuery();
  MessageBox.Show("Data is Saved");
  con.Close();
  nametxt.Clear();
  emailtxt.Clear();
  phonetxt.Clear();
}

最後に、データを dataGridView に取り込むためのコードを記述します。 これを行うには、DataSet タイプのオブジェクトを作成し、データベースから取得したデータを入力します。

private void Getbtn_Click(object sender, EventArgs e) {
  DataSet ds = new DataSet();
  da.Fill(ds, "mydata");
  dataGridView1.DataSource = ds.Tables["mydata"].DefaultView;
}

ソースコード:

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

namespace Saad_artilce_final_version {
  public partial class Form1 : Form {
    SqlDataAdapter da = new SqlDataAdapter(
        "SELECT * FROM mydata",
        @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog=readwrite; Integrated Security=True");

    SqlConnection con = new SqlConnection(
        @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog=readwrite; Integrated Security=True");
    SqlCommand cmd;
    public Form1() {
      InitializeComponent();
    }

    private void Savebtn_Click(object sender, EventArgs e) {
      con.Open();
      cmd = new SqlCommand("insert into mydata values ('" + nametxt.Text + "','" + emailtxt.Text +
                               "','" + phonetxt.Text + "')",
                           con);
      cmd.ExecuteNonQuery();
      MessageBox.Show("Data is Saved");
      con.Close();
      nametxt.Clear();
      emailtxt.Clear();
      phonetxt.Clear();
    }

    private void Getbtn_Click(object sender, EventArgs e) {
      DataSet ds = new DataSet();
      da.Fill(ds, "mydata");
      dataGridView1.DataSource = ds.Tables["mydata"].DefaultView;
    }
  }
}

出力:

C# SQL データベースの作成 - ダイアログ

C# SQL データベースの作成 - データの取得

著者: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

関連記事 - Csharp SQL