C#.NETのサンプルコードを掲載しています。
      
ADO.NET
C#、VB.NETでデータベースへアクセスする場合、.NET FrameworkのADO.NETを用います。
ADO.NETはデータベースへアクセスするための様々なコンポーネントのセットを提供します。

初めてADO.NETでデータベースを操作するとき
ADO.NETで提供されるクラスライブラリのなかに接続、切断、データ抽出や更新
などが1つのクラスにあるのかな?と思います。しかしそこまで単純ではありません。
このクラスライブラリは複数のクラスで構成されており、接続/切断を管理するクラス
データ抽出/更新するクラス、トランザクションを管理するクラスなどがあります。
これらのクラス群のことを.NET Framework データプロバイダーといいます。

ADO.NETでデータベースへアクセスするときはこのデータプロバイダーや
データセットを用いて操作します。

 

アクセス方法
ADO.NETで提供されているデータベースへのアクセス方法は接続型非接続型の2種類あります。

接続型はデータベースとの接続を確立した後、切断するまで接続を維持し続けます。
接続した後にデータの抽出や更新などのアクセスを行い、必要が無くなったら切断します。
データベースへのアクセスが不要になるまで切断しないため非接続型と比べ
接続/切断の回数が少なくオーバーヘッドも少ないです。
接続型は、パフォーマンスが要求される定型的なバッチ処理や、
更新が頻繁に行われるトランザクション処理に対して適してます。
接続型のサンプルコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17


SqlConnection conn = new SqlConnection();
SqlCommand command = new SqlCommand();

conn.ConnectionString = @"Data Source=[コンピューター名]\SQLEXPRESS1;Initial Catalog=TestDatabase;User Id=sa;Password=sa;";
conn.Open();

command.Connection = conn;
command.CommandText = "SELECT * FROM dbo.m_syouhin";

SqlDataReader reader = command.ExecuteReader();

while (reader.Read())
{
    Console.WriteLine("id: {0}  name: {1}", reader["id"], reader["name"]);
}

conn.Close();



非接続型はアプリケーションがデータベースにアクセスするときだけ接続します。
データベースへ接続し、データを抽出し、それをデータセットに保持した後、
データベースの接続を解除します。データセットはクライアントのメモリ内に展開される為
サーバーのリソースを無駄に消費することはありません。
非接続型は、複数ユーザーの利用が想定される、Web アプリケーションなどで
利用することが適切だと言えます。
非接続型のサンプルコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17


SqlConnection conn = new SqlConnection();
SqlCommand command = new SqlCommand();
SqlDataAdapter adapter = new SqlDataAdapter();
DataSet ds = new DataSet();

conn.ConnectionString = @"Data Source=[コンピューター名]\SQLEXPRESS1;Initial Catalog=TestDatabase;User Id=sa;Password=sa;";

command.Connection = conn;
command.CommandText = "SELECT * FROM dbo.m_syouhin";

adapter.SelectCommand = command;
adapter.Fill(ds);

foreach (DataRow row in ds.Tables[0].Rows)
{
    Console.WriteLine("id: {0}  name: {1}", row["id"], row["name"]);
}



      
参考文献

ADO.NET




Effective C# 4.0
ビル・ワグナー
¥ 3,780



Copyright (C) 2011 - 2017 猫の気ままなC#日記