ADO.NET(ActiveX Data Objects .NET)は、.NET Frameworkおよび.NET Coreでデータベースと通信するための基盤となる技術です。ADO.NETを使用すると、データベースとアプリケーション間で効率的にデータを操作できます。この技術を使用すると、リレーショナルデータベースとの接続、データの読み取り、書き込み、更新、削除が可能になります。本記事では、ADO.NETの基本的な概念から始まり、データベース接続の確立、データ操作の実行、結果の取得に至るまで、ADO.NETを活用する方法を詳述します。
ADO.NETの基本概念
ADO.NETは、主にデータベースとの接続、データの操作、トランザクションの管理、データの返却などのタスクを行います。ADO.NETは以下の主要コンポーネントで構成されています:
-
Connection(接続オブジェクト):データベースへの接続を管理します。
-
Command(コマンドオブジェクト):データベースへのSQLクエリやストアドプロシージャの実行を指示します。
-
DataReader(データリーダー):SQLクエリ結果の読み取りを効率的に行うためのオブジェクトです。
-
DataAdapter(データアダプター):データベースからのデータの取得や、更新操作を行うための仲介役を果たします。
-
DataSet(データセット):複数のテーブルをメモリ上で格納し、データの操作を行うためのオフラインキャッシュ機能を提供します。
これらのコンポーネントを組み合わせることで、データベースとの効果的なやりとりが可能になります。
ADO.NETのデータベース接続の確立
ADO.NETを使用してデータベースに接続するには、まず接続文字列を作成します。接続文字列には、データベースの場所、認証情報、およびその他の設定が含まれます。以下は、SQL Serverデータベースに接続するための簡単な接続文字列の例です:
csharpstring connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
次に、SqlConnectionクラスを使用してデータベースに接続します。以下は接続の基本的な流れです:
csharpusing System;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
Console.WriteLine("データベースに接続しました。");
}
catch (Exception ex)
{
Console.WriteLine("接続エラー: " + ex.Message);
}
}
}
}
このコードでは、SqlConnectionオブジェクトを使用してデータベースに接続し、Open()メソッドで接続を確立します。接続が成功すれば、「データベースに接続しました。」というメッセージが表示されます。
SQLクエリの実行
接続が確立したら、次にSQLクエリを実行してデータの取得や変更を行います。ADO.NETでは、SqlCommandクラスを使用してSQLコマンドを実行します。以下に、簡単なSELECTクエリを実行し、その結果をSqlDataReaderで取得する例を示します:
csharpusing System;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "SELECT * FROM Employees";
SqlCommand command = new SqlCommand(query, connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader["EmployeeName"]);
}
}
}
}
このコードでは、SqlCommandオブジェクトで指定したSQLクエリを実行し、ExecuteReader()メソッドで結果を取得します。その後、SqlDataReaderを使って結果セットからデータを読み取ります。reader["EmployeeName"]で各行の「EmployeeName」列の値を取得しています。
データの更新(INSERT、UPDATE、DELETE)
データベースの内容を更新するためには、ExecuteNonQuery()メソッドを使用します。ExecuteNonQuery()は、INSERT、UPDATE、DELETEなどのデータ変更操作を実行するために使用されます。以下は、INSERTクエリを実行してデータを追加する例です:
csharpusing System;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = "Server=myServerAddress;Database=myDataBase
