ASP.NETで学ぶADO.NET入門!初心者でもわかる基本的なデータベース操作
生徒
「ASP.NETでデータベースを使いたいんですが、何から覚えればいいですか?」
先生
「まずは一番基本になるADO.NETを知るのがおすすめです。土台になる技術ですね。」
生徒
「ADO.NETって難しそうな名前で不安です……」
先生
「大丈夫です。仕組みはシンプルなので、ゆっくり一緒に見ていきましょう。」
1. ADO.NETとは何かをやさしく理解しよう
ADO.NETは、ASP.NETからデータベースに接続して操作するための基本技術です。データベースとは、たくさんの情報を整理して保存する大きな箱のような存在です。ADO.NETは、その箱を開けて、中身を取り出したり、入れ替えたりするための道具だと考えてください。
Entity FrameworkやDapperといった便利な仕組みもありますが、それらはADO.NETを元に作られています。そのため、ADO.NETを知っておくと、ASP.NETのデータベース接続全体の理解が深まります。
2. データベース接続の流れをイメージしよう
ADO.NETでデータベースを扱うときの流れは、毎回ほぼ同じです。まず接続し、次に命令を送信し、最後に結果を受け取るという順番になります。
これは、電話で注文する流れに似ています。電話をかけてお店につながり、注文を伝え、店員さんから返事をもらう、というイメージです。ADO.NETでも、この順番を守ることが大切です。
3. SqlConnectionでデータベースにつなぐ
データベースへの接続には、SqlConnectionを使います。これは「データベースへの入り口」を表すものです。接続文字列と呼ばれる情報を使って、どのデータベースにつなぐかを指定します。
using System.Data.SqlClient;
string connectionString = "Server=.;Database=SampleDb;Trusted_Connection=True;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("データベースに接続できました");
}
ここでは、接続が成功したらメッセージを表示しています。Openは「ドアを開ける」動作だと思うと理解しやすいです。
4. SqlCommandでSQLを実行する
データベースに対して操作を指示するには、SqlCommandを使います。SQLとは、データベースに対する命令文のことです。例えば、データを追加したり、取得したりする指示を書きます。
string sql = "SELECT COUNT(*) FROM Users";
using (SqlCommand command = new SqlCommand(sql, connection))
{
int count = (int)command.ExecuteScalar();
Console.WriteLine(count);
}
ExecuteScalarは、1つの値だけを取得するときに使います。ここでは、ユーザーの人数を数えています。
5
5. データを一覧で取得する方法
複数のデータを取得したい場合は、SqlDataReaderを使います。これは、データを1行ずつ読み取るための仕組みです。本を1ページずつめくるようなイメージです。
string sql = "SELECT Name FROM Users";
using (SqlCommand command = new SqlCommand(sql, connection))
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader["Name"]);
}
}
このようにすると、データベースに入っている名前を順番に表示できます。
6. データを追加・更新・削除する基本
データを変更する操作では、ExecuteNonQueryを使います。これは、結果として数字や一覧を返さない命令に使われます。登録や更新、削除が代表例です。
string sql = "INSERT INTO Users (Name) VALUES ('Taro')";
using (SqlCommand command = new SqlCommand(sql, connection))
{
int result = command.ExecuteNonQuery();
Console.WriteLine(result);
}
1
表示される数字は、影響を受けた行の数です。1と出ていれば、1件追加されたことがわかります。
7. ADO.NETを使うときの注意点
ADO.NETでは、接続を開いたら必ず閉じることが重要です。閉じ忘れると、データベースが混雑してしまいます。そのため、usingを使って自動的に片付ける書き方がよく使われます。
また、SQLをそのまま文字として書くと、セキュリティ上の問題が起こる場合があります。基本操作を理解したあとで、安全な書き方を学ぶと安心です。
8. ADO.NETと他の技術との関係
ADO.NETはとても基本的な仕組みなので、少しコード量は多くなります。しかし、その分「何が起きているか」が見えやすいという特徴があります。
Entity FrameworkやDapperは、このADO.NETを内部で利用して、より簡単に書けるようにしたものです。まずADO.NETで基礎を理解しておくと、後の学習が楽になります。