狠狠撸

狠狠撸Share a Scribd company logo
2
Most read
3
Most read
C# Database操作5
~SqlDataAdapterを使用したデータの取得~
Microsoft MVP Hiroki.T
http://blog.hiros-dot.net/
copyright @2015 HIRO's.NET All Rights Reserved.
SqlDataAdapterを使用したデータの取得
? 今回は、SqlDataAdpterとDataSetを使用したデータの取得方法に
ついて学びます。
? SqlDataAdapterを使用すると、データベースから取得したデータを
DataSetオブジェクトやDataTableオブジェクトと呼ばれるメモリ上の
器にデータを格納することができます。
? 必要なデータはDataSetオブジェクトに格納されるので、データの取
得完了後はデータベースから切断しても問題ありません。
? データベースに接続しっぱなしということはなくなるため、データベー
スのリソースを必要以上に使用することがなくなります。これを非接
続型と呼びます。一方、前回までのように切断されるまで常時接続し
ておく方式を接続型と呼びます。
? SqlDataAdpterを使用すると、DataSetに変更があった内容をデータ
ベースに反映させることも可能です(次回以降で説明します)。
SqlDataAdpterとDataSetのイメージ
データベース DataSetSqlDataAdapter
DataTable
画面のデザイン
? 「DatabaseSample2」という名前で新規でプロジェクトを作成します。
? 画面のデザインは以下のようにします。
? 画面起動時に任意のSELECT文を実行して、取得結果を表(DataGridView)に表
示するサンプルアプリケーションを作成します。
()内はコントロール名
Name:grdData
(DataGridView)
必要フィールドの宣言
? 必要なフィールドの宣言をします。
public partial class Form1 : Form
{
private readonly string CONN_STRING = "Data Source=サーバー名;Initial Catalog=データベー
ス名;User ID=ユーザー;Password=パスワード"; -----①
SqlConnection _sqlConn = new SqlConnection(); -----②
SqlCommand _command = new SqlCommand(); -----③
DataSet _dtSet = new DataSet(); -----④
SqlDataAdapter _adapter = new SqlDataAdapter(); -----⑤
}
①接続文字列(サーバー名、データベース名、ユーザー、パスワードは使用環境に合わせること)
②DB接続/解除に使用
③SQL実行用
④取得データ格納先
⑤データの取得/更新用に使用
データ取得処理の実装
? フォームのコンストラクタのコードを以下のように編集します。
public Form1()
{
InitializeComponent();
_sqlConn.ConnectionString = CONN_STRING; -----①
_command.Connection = _sqlConn; -----②
_command.CommandText = "SELECT * FROM USER_MST"; -----③
_adapter.SelectCommand = _command; -----④
_adapter.Fill(_dtSet); -----⑤
grdData.DataSource = _dtSet.Tables[0]; -----⑥
}
データ取得処理のコード解説
? ①は、接続文字列を設定しています
? ②は、実行するコマンドに①で作成したコネクションを紐づけていま
す。
? ③は、SqlDataAdapterを介してデータを取得するためのSELECT文
をSqlCommandとして設定しています。
? ④は、作成したSqlCommandをSqlDataAdapterに設定しています。
SqlDataAdapterはこのコマンドを実行してデータを取得します。
? ⑤は、データを取得してDataSetに格納する処理です。データベース
への接続からデータ取得、格納までを行います。
? ⑥は、DataSetに格納されたデータをDataGridViewコントロールへ
表示する処理です。DataSetには複数のDataTableオブジェクトが格
納されています。SqlDataAdpterのFillメソッドを実行するとインデック
スが0のDataTableオブジェクトにデータが格納されます。
動作確認
? コードの編集が完了したら、実行して動作確認をしましょう。
? 画面が起動するとSQLが実行されて、DataGridViewにデータが
表示されます。
End

More Related Content

What's hot (20)

PPTX
?нформатика 1 урок
ssuserd09fbf
?
PDF
Angular Notes.pdf
sagarpal60
?
PDF
SQLite3
cltru
?
PDF
The Point of Vue - Intro to Vue.js
Holly Schinsky
?
PPTX
Patrons de conception
Amine MAAROUFI
?
PDF
Nuxt.js - Introduction
Sébastien Chopin
?
PPTX
Урок 8. Стиснення ? арх?вування даних
Василь Тереховський
?
PDF
Nestjs MasterClass 狠狠撸s
Nir Kaufman
?
PPTX
Http session (Java)
Mrittunjoy Das
?
PDF
SOLID Principles and Design Patterns
Ganesh Samarthyam
?
PDF
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
?
PPTX
Project onion - Project Architecture for .Net Core Application
Abhinav Jha
?
PDF
SQL vs NoSQL | MySQL vs MongoDB Tutorial | Edureka
Edureka!
?
PPT
Hibernate presentation
Manav Prasad
?
PPTX
Introduction à Laravel
Abdoulaye Dieng
?
PDF
From framework coupled code to #microservices through #DDD /by @codelytv
CodelyTV
?
PPTX
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Simplilearn
?
PDF
???????? ??? ?????????? ???????? V0.3
NAVER D2
?
PPTX
9 клас урок 16
Юл?я Артюх
?
PPTX
Asp.Net Core MVC with Entity Framework
Shravan A
?
?нформатика 1 урок
ssuserd09fbf
?
Angular Notes.pdf
sagarpal60
?
SQLite3
cltru
?
The Point of Vue - Intro to Vue.js
Holly Schinsky
?
Patrons de conception
Amine MAAROUFI
?
Nuxt.js - Introduction
Sébastien Chopin
?
Урок 8. Стиснення ? арх?вування даних
Василь Тереховський
?
Nestjs MasterClass 狠狠撸s
Nir Kaufman
?
Http session (Java)
Mrittunjoy Das
?
SOLID Principles and Design Patterns
Ganesh Samarthyam
?
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
?
Project onion - Project Architecture for .Net Core Application
Abhinav Jha
?
SQL vs NoSQL | MySQL vs MongoDB Tutorial | Edureka
Edureka!
?
Hibernate presentation
Manav Prasad
?
Introduction à Laravel
Abdoulaye Dieng
?
From framework coupled code to #microservices through #DDD /by @codelytv
CodelyTV
?
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Simplilearn
?
???????? ??? ?????????? ???????? V0.3
NAVER D2
?
9 клас урок 16
Юл?я Артюх
?
Asp.Net Core MVC with Entity Framework
Shravan A
?

More from Hiroki Takahashi (15)

PPTX
C# TreeViewを使用する2
Hiroki Takahashi
?
PPTX
C# TreeViewを使用する1
Hiroki Takahashi
?
PPTX
C# Database操作6 SqlDataAdapterを使用したデータの更新-
Hiroki Takahashi
?
PPTX
C# Database操作4 トランザクション処理-
Hiroki Takahashi
?
PPTX
C# Database操作3 データの更新-
Hiroki Takahashi
?
PPTX
C# Database操作2 データの取得-
Hiroki Takahashi
?
PPTX
C# Database操作1 接続と切断-
Hiroki Takahashi
?
PPTX
C# ドラッグ&ドロップ処理の実装
Hiroki Takahashi
?
PPTX
C# 時間の掛かる処理をBackgroundWorkerコンポーネントで実行する
Hiroki Takahashi
?
PPTX
C# ErrorProviderとValidatingイベント
Hiroki Takahashi
?
PPTX
C# 継承フォームの作成
Hiroki Takahashi
?
PPTX
C# モーダルフォームとモードレスフォーム
Hiroki Takahashi
?
PPTX
C# FileSystemWatcherコントロールを使用したアプリケーションの作成
Hiroki Takahashi
?
PDF
颁#でディレクトリを再帰的に取得する
Hiroki Takahashi
?
PPTX
颁#によるファイルの読み书き
Hiroki Takahashi
?
C# TreeViewを使用する2
Hiroki Takahashi
?
C# TreeViewを使用する1
Hiroki Takahashi
?
C# Database操作6 SqlDataAdapterを使用したデータの更新-
Hiroki Takahashi
?
C# Database操作4 トランザクション処理-
Hiroki Takahashi
?
C# Database操作3 データの更新-
Hiroki Takahashi
?
C# Database操作2 データの取得-
Hiroki Takahashi
?
C# Database操作1 接続と切断-
Hiroki Takahashi
?
C# ドラッグ&ドロップ処理の実装
Hiroki Takahashi
?
C# 時間の掛かる処理をBackgroundWorkerコンポーネントで実行する
Hiroki Takahashi
?
C# ErrorProviderとValidatingイベント
Hiroki Takahashi
?
C# 継承フォームの作成
Hiroki Takahashi
?
C# モーダルフォームとモードレスフォーム
Hiroki Takahashi
?
C# FileSystemWatcherコントロールを使用したアプリケーションの作成
Hiroki Takahashi
?
颁#でディレクトリを再帰的に取得する
Hiroki Takahashi
?
颁#によるファイルの読み书き
Hiroki Takahashi
?
Ad

Recently uploaded (6)

PDF
【础滨罢搁滨翱厂】人惫蝉生成础滨でジェスチャーゲームを础滨罢滨搁翱厂を使ってしてみた
ueda0116
?
PDF
React Native vs React Lynx (React Native Meetup #22)
Taiju Muto
?
PPTX
[Liberaware] Engineer Summer Internship.pptx
koyamakohei
?
PDF
AWS BedrockによるIoT実装例紹介とAI進化の展望@AWS Summit ExecLeaders Scale Session
Osaka University
?
PDF
フィシ?カル础滨时代のセキュリティ:ロホ?ティクスと础滨セキュリティの融合のあり方
Osaka University
?
PDF
音学シンポジウム2025 招待讲演 远隔会话音声认识のための音声强调フロントエント?:概要と我々の取り组み
Tsubasa Ochiai
?
【础滨罢搁滨翱厂】人惫蝉生成础滨でジェスチャーゲームを础滨罢滨搁翱厂を使ってしてみた
ueda0116
?
React Native vs React Lynx (React Native Meetup #22)
Taiju Muto
?
[Liberaware] Engineer Summer Internship.pptx
koyamakohei
?
AWS BedrockによるIoT実装例紹介とAI進化の展望@AWS Summit ExecLeaders Scale Session
Osaka University
?
フィシ?カル础滨时代のセキュリティ:ロホ?ティクスと础滨セキュリティの融合のあり方
Osaka University
?
音学シンポジウム2025 招待讲演 远隔会话音声认识のための音声强调フロントエント?:概要と我々の取り组み
Tsubasa Ochiai
?
Ad

C# Database操作5 SqlDataAdapterを使用したデータの取得-