データベースアクセスのためのコンポーネントを提供する「ADO.NET」とは
「ADO.NET」とは.NET Frameworkにて提供されている、データベースへアクセスするためのコンポーネントです。
データベースへの接続や切断、データの取得や登録、更新などそれぞれの機能にコンポーネントが提供されています。
- システム
エンジニア - ADO.NETを使用するとデータベースへアクセスする処理が実装できるのでしょうか?教えてください!
- プロジェクト
マネージャー - C#やVB.NETでデータベースへアクセスする場合はADO.NETを使用して、アクセスする処理を実装することができます。
データベースアクセスに用いるADO.NETとは
ADO.NETを使用した場合、データベースへアクセスする方法は「接続型」と「非接続型」の2つです。
接続型はデータベースへの接続から切断まで、継続して接続したままの状態になる接続方法です。
データベースへの接続と切断には処理の特性上、負荷が掛かります。
しかし、接続型では接続と切断は1度きりになるため、その負荷を減らすことができます。
代わりに、接続したまま状態になることもありサーバーのリソースを消費します。
多くのデータを扱うバッチ処理や多くのデータを更新する場合、接続型の方式が適しています。
対して、非接続型はデータベースにアクセスする時だけ接続し、処理が終了したら切断する方式です。
接続したままの状態になることなく切断を行うので、サーバーのリソースの消費を抑えます。
非接続型は都度データベースへ接続、切断を行うため、負荷がかかりますが、複数のユーザーが利用するWebアプリケーションなどで使用します。
ADO.NETで使ってできること
ADO.NETでデータベースからデータを取得するには以下のように実装します。
まずは、接続型の例です。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
SqlConnection con = new SqlConnection();
SqlCommand command = new SqlCommand();
// 接続文字列の定義
con.ConnectionString = @"Data Source=[hoge]\SQLEXPRESS1;Initial Catalog=Hoge;User Id=xxxx;Password=xxxx;";
// DB接続
con.Open();
command.Connection = con;
command.CommandText = "SELECT * FROM dbo.users";
SqlDataReader reader = command.ExecuteReader();
// DBへのアクセスを繰り返し行う
while (reader.Read())
{
Console.WriteLine();
…
}
// DB切断
con.Close();
|
このように、最初に接続を行い データベースのアクセスを繰り返し行った後、最後に切断するという方式です。
次に、非接続型です。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
SqlConnection cnn = new SqlConnection();
SqlCommand command = new SqlCommand();
SqlDataAdapter adapter = new SqlDataAdapter();
DataSet ds = new DataSet();
// 接続文字列の定義
con.ConnectionString = @"Data Source=[hoge]\SQLEXPRESS1;Initial Catalog=Hoge;User Id=xxxx;Password=xxxx;";
command.Connection = con;
command.CommandText = "SELECT * FROM dbo.users";
adapter.SelectCommand = command;
// DBへのアクセス
adapter.Fill(ds);
// 取得したデータの数だけ繰り返し
foreach (DataRow row in ds.Tables[0].Rows)
{
Console.WriteLine();
…
}
|
非接続型では、クエリを発行する度に自動的に接続と切断をするため、明示的に接続と切断の処理を記載しません。
このように、作成するアプリケーションの特性に応じて、方式を使い分けながらデータベースへのアクセス処理を実装することができます。
- システム
エンジニア - ADO.NETを利用することで、データベースへのアクセス処理が実装できることが分かりました。
- プロジェクト
マネージャー - 作成するアプリケーションに応じて、方式を使い分けてデータベースへのアクセス処理を実装していきましょう。
ADO.NETを利用するとデータベースへのアクセス処理を実装できる
ADO.NETを利用することで、データベースへのアクセス処理が実装できることが分かりました。
データベースへのアクセス処理が実装できることで、アプリケーションの機能の幅が広がります。ぜひ利用してみてはいかがでしょうか。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)