VB.NET解説

Similar documents
VB実用① データベースⅠ

データアダプタ概要

データベースプログラミング

VB実用Ⅲ⑩ フリーデータベースⅡ

データベースⅠ

VB.NET解説

VB実用③ アクセス操作Ⅰ

Userコントロール

データベース1

グラフィックス

データベース1

データベース1

NotifyIconコントロール

(OnePoint) ( URL Web Copyright 2005 Microsoft Corporation. All rights reserved. MicrosoftWindowsVisual Basic Visual Studio Microsoft Corporation

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

テスト 1/7 ページ プレポスト Visual Studio による Windows アプリの開発 ( 基礎編 ) 受講日程受講番号氏名 1.NET Framework に関する記述で 誤っているものを選びなさい 1..NET Framework に含まれる CLR は プログラミング言語に依存し

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

データベースⅠ

データベースⅢ

ADO.NETのアーキテクチャ

64bit環境で32bitコンポーネントの利用

目次 はじめに... 3 システムの必要条件... 4 ライセンス認証... 4 アクティベーション... 6 開発... 7 手順 1. アプリケーションの作成... 7 手順 2. データソースの作成と代入... 7 手順 3. テンプレートの作成 手順 4. レポートビューアの追加

データベースⅡ

データベースⅢ

mySQLの利用

データベースⅡ

ルーレットプログラム

TableAdapterクラス

データベースプログラミング

Microsoft Word - VB.doc

DAOの利用

PowerPoint プレゼンテーション

Prog2_4th

Microsoft Word -

ICONファイルフォーマット

ADOとADO.NET

目次 更新履歴... 1 はじめに... 3 レコードセット?... 3 準備... 5 SQL でデータを取得する... 6 データのループ処理... 7 列の値を取得する... 7 対象行を変更する (MoveFirst, MoveNext, MovePrevious, MoveLast)...

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

データアダプタ概要

VB実用④ アクセス操作Ⅱ

MxLogonサーバサイドツールキット用UI

目次 はじめに... 3 システムの必要条件... 3 サンプルアプリケーションの作成... 3 手順 手順 手順 手順 手順 手順 終わりに... 23

DBMSリポジトリへの移行マニュアル

ServerView Resource Orchestrator V3.0 ネットワーク構成情報ファイルツール(Excel形式)の利用方法

Microsoft Word JA_revH.doc

ファイル操作

ER/Studio Data Architect 2016 の新機能

正規表現応用

ブロック崩し風テニス

ブロック パニック

MS Office オートメーション

WebReportCafe

ListViewコントロール

モデリング操作ガイド (データベースモデリング編)

第 12 講データ管理 1 2 / 14 ページ 12-1 データベースソフトの概要 データベースとは集められた様々なデータをテーマや目的に沿って分類 整理したものです データベースソフトでは データベースを作成し その管理を行います 何種類ものファイルや帳簿で管理していたデータをコンピュータ上で互

ことばを覚える

ファイル操作-インターネットキャッシュ

データベースアクセス

With sqlda sqlda に SelectCommand を追加.SelectCommand = New MySqlCommand() With.SelectCommand.CommandType = CommandType.Text.CommandText = "select * from

VB実用⑤ アクセス操作Ⅲ

第 13 講データ管理 2 2 / 14 ページ 13-1 ファイルを開く 第 12 講で保存したデータベースファイル サークル名簿.accdb を開きましょう 1. Access を起動します 2. Microsoft Office Access - 作業の開始 が表示されていることを確認します

intra-mart Accel Platform

図 2 Excel スプレッドシートの世界 のウィンドウ 図 3 Visual Basic の世界 のウィンドウ 図 3 の VBA ウィンドウは 図 2 の Excel ウィンドウのメニューの ツール をクリックし 開か れるプルダウンメニューで マクロ /Visual Basic Editor

立ち読みページ

VFD256 サンプルプログラム

プロセス間通信

グラフィックス 目次

ご存知ですか? データ転送

HOL14: Microsoft Office Excel 2007 の ブラウザと Web サービス対応

グラフィックス 目次

問題 1 次の文章は Access データベース およびデータベースの概要について述べたものである にあてはまる適切なものを解答群 { } より選び その記号で答えよ 設問 1. Microsoft Access 2007 データベースのテーブルでは 表す としてデータを { ア. レコードを列 フ

— intra-mart Accel Platform セットアップガイド (WebSphere編)   第7版  

試作ツールは MIT ライセンスによって提供いたします その他 内包された オープンソース ソフトウェアについてはそれぞれのライセンスに従ってご利用ください

Oracle BI Publisherを利用したレポートの作成

プラグイン

10 完了 をクリック 13 このサーバーは認証が必要 をチェックして 設定 をクリック Windows メール Windows Vista に標準のメールソフト Windows メール の設定方法を説明します 1 スタート から 電子メール Windows メール をクリック 11 続いて設定ファ

PowerPoint プレゼンテーション

フォト・ボックス

Oracle Lite Tutorial

VB実用Ⅲ① ADOでファイル操作

PowerPoint プレゼンテーション

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

Prog2_15th

データの作成方法のイメージ ( キーワードで結合の場合 ) 地図太郎 キーワードの値は文字列です キーワードの値は重複しないようにします 同じ値にする Excel データ (CSV) 注意キーワードの値は文字列です キーワードの値は重複しないようにします 1 ツールバーの 編集レイヤの選択 から 編

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

PowerPoint Presentation

Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

Microsoft Word - FTTH各種設定手順書(鏡野地域対応_XP項目削除) docx

1. アンケート集計サンプルについて ここでは Windows Azure と SQL Azure を使ってアンケートを実施し アンケート結果を Excel で集計するサンプルについて説明します アンケートは Windows Azure で運用し アンケート結果は SQL Azure に格納されます

PowerPoint プレゼンテーション

GHS混合物分類判定システムインストールマニュアル

ファイル監視

2 1: ネットワーク設定手順書 が完了後に行なってください 鏡野町有線テレビ 各種設定手順書 この手順書では以下の内容の手順を解説しています メール設定 ホームページの掲載 お客様がご利用の OS により設定方法が異なる部分があります OS をご確認の上 作業を行なってください お客

Prog2_12th

CubePDF ユーザーズマニュアル

Microsoft PowerPoint - kakeibo-shiryo1.pptx

TREND CA Ver.3 手順書

一般社団法人ビジネス機械・情報システム産業協会

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

Transcription:

Visual Basic.NET データベース編 目次 ADO.NET の概要... 2 ADO.NET と ADO... 2 ADO.NET の仕組み... 4 ADO.NET の特徴... 7 データアクセスの基本... 8 Windows アプリケーションの開発手順... 8 データ接続の作成... 9 データアダプタとコネクションの作成...10 データセットの作成...14 データアクセスの利用...21 Windows フォームを使用したデータベース操作...21-1-

ADO.NET の概要 Visual Basic.NET では 従来の ADO を従来の方法で使用する事も出来るが 通常 データベースにアクセスする為に ADO.NET を使用する 此処では Windows 上で動作するアプリケーションの開発に必要な知識を中心に ADO.NET の概要を説明する ADO.NET と ADO Visual Basic 6.0 では データベースにアクセスする為に ADO(ActiveX Data Object) を使用するが ADO.NET は 此れを.NET Framework 用に進化させた物で有り 両者は データアクセスの概念に大きな差異が有る データアクセス用のコンポーネント ADO Visual Basic 6.0 では データアクセス用のコンポーネントに ADO データコントロール (ADODC) が有り 下記の機能を提供して居る データベースに接続する データベースから必要なデータを取得する フォーム上のコントロールとデータベースを連結する ADO.NET ADO.NET には ADO の様な便利なコンポーネントは無い コネクションを使用してデータベースに接続し データアダプタを使用して必要なデータを取得する データの保持方法 ADO ADO では 取得したデータをレコードセットで管理する レコードセットは メモリ上に保持した仮想テーブルの様な物で有る ADO.NET ADO.NET では データセットに依り データベースと同じ物をメモリ上に保持する事が出来る データセットには 複数のテーブルの構造や 主キーやリレーションシップ等の属性を定義する事が出来る 亦 実行時には 取得したデータを管理する事も出来る レコードの扱い方 ADO ADO のレコードセットに含まれるレコードは Bookmark プロパティに依り管理されて居り 孰れかのレコードが必ず選択された状態に成って居る 因みに レコードセットを取得した初期状態では 先頭のレコードが選択された状態に成って居る 此のレコードをカレントレコードと呼び 亦 MoveNext メソッドや MovePrevious メソッド等に依り カレントレコードを移動する事が出来る -2-

ADO.NET ADO.NET には カレントレコードと謂う概念は無い 其の為 レコードを移動する為のメソッドも無い データセットに保持されたデータは 行のコレクションと仕て扱われ 各レコードは 配列の要素番号を使用して識別する 接続方法 ADO ADO では データベースに常時接続した状態で使用するのが基本で有る 其の為 常に最新のデータを取得し 更新する事も可能で有るが 実際には データの転送時以外は データベースに接続して居る必要が無い場合が多い 亦 データベースへの接続を維持する事で システムリソースを消費し パフォーマンスが低下すると謂う負の側面も有る データベース フォーム ADO.NET ADO.NET では データセットに依り データベースと粗同じ物をメモリ上に保持する事が出来るのでデータベースに接続する必要が有るのは データセットにデータを取得する時と データセットで変更した内容をデータベースに転送する時丈で有る 其れ以外の時はデータベースの接続を解除し データセットを利用してデータベース操作を行う フォーム データアダプタ コネクション データベース データセット ADO と ADO.NET の使い分け 新規にアプリケーションを開発する時は ADO.NET を利用すると 豊富なツールを利用して 効率良くアプリケーションを開発する事が出来る ADO.NET では データベースと常時接続する必要が無い為 システムの負荷を軽減する事が出来る 併し 非接続型故に 大量のレコードの即時更新や 常に最新の情報が必要な場合には 不適格で有り 此の様な場合は 常時接続型の ADO を利用すると良い.NET Framework でも ADO は サポートされて居る -3-

ADO.NET の仕組み ADO.NET で主要なコンポーネントは データセットとデータプロバイダで有る データセットは メモリ上に展開したデータベースで有り 元のデータベースとデータセットとの橋渡しは データプロバイダが行う データベースにアクセスする方法 下図に データベースにアクセスして取得したデータをフォームに表示する時のイメージを示す アプリケーション フォーム XML データセット データアダプタ コネクションコマンドデータリーダー データプロバイダ ADO.NET データベース データソース データアダプタは データベースへの接続情報と データベースに対して実行するコマンドを保持したオブジェクトで有る データアダプタが保持するコマンドは データベースからデータを取得するコマンドと データベースを更新するコマンドに大別される データを取得するコマンドを実行すると 自動的にデータベースへの接続を開始して コマンドを実行し 取得したデータをデータセットに格納した後 データベースへの接続を解除する -4-

データセット内のデータは アプリケーション実行中 メモリに常駐する レコードの編集や 必要なデータの抽出等の作業は 総てデータセット上で行う 其の為 レコード操作を行うと データセットの内容と元のデータベースの内容は 異なる物に成る 此の両者の同期を取る為には データアダプタが保持して居るデータベース更新用のコマンドを使用する 此のコマンドを実行すると 再びデータベースに接続して データを更新し 処理を終了した後は 接続を解除する 猶 ADO.NET では コンポーネント間でデータ転送を行う時に XML 形式でデータ転送を行う 構造化されたデータの転送を目的と仕た標準言語で有る XML(eXtensible Markup Language) は 現在多くのアプリケーションで データ転送の為に採用されて居る.NET データプロバイダ.NET データプロバイダは データベースへの接続や コマンドを実行してデータの取得や更新を行う為のコンポーネントの集合で コネクション データアダプタ コマンド データリーダから構成される コネクション 特定のデータベースへの接続を確立するコンポーネントで有る データアダプタ データベースとデータセットの連結するコンポーネントで 下記の機能を有する データベースから取得したデータをデータセットに格納する データセットの内容でデータベースを更新する 亦 データアダプタは 上記の機能を果たす為に 下記の 4 個のコマンドを有する 選択コマンド : 必要なデータを抽出する 追加コマンド : レコードを追加する 削除コマンド : レコードを削除する 更新コマンド : レコードを更新する データアダプタは 上記のコマンドを実行する時 自動的にデータベースに接続し 処理を終了した後は 接続を解除する 其の為 データベースへの接続と解除を手動で行う必要は無い コマンド データベースに対して実行するコマンドを保持するコンポーネントで有る データリーダ コマンドを実行した結果 データベースから 読込専用 前方スクロール可能な形で読み込んだデータで有る 猶 Windows アプリケーションを開発する場合は 主にデータアダプタとコネクションを使用し コマンドとデータリーダは Web アプリケーションの開発に利用する -5-

データセット データセットは アプリケーションが使用するデータベースを メモリ上に展開した物で有る データベースと同じ様に データセットには 複数のテーブルを定義する事が出来る 亦 主キーの様なテーブル属性やリレーションシップを設定して テーブル間の関連付けを定義する事が出来る アプリケーションの実行時には 定義したテーブルにデータを保持する事が出来る データセットは 接続するデータソースから完全に独立して居る 其の為 種類の異なるデータベースから取得したデータを 同じデータセットに保持する事も可能で有る 亦 データセット内のデータは データベースの種類に係らず 同じ手法でアクセスする事が出来る Access データベース Oracle データベース SQL Server データベース データセット -6-

ADO.NET の特徴 ADO.NET には 多くのデザインツールが用意されて居り 効率良くデータベースアプリケーションを開発する事が出来る 亦 常時接続する必要が無い為 パフォーマンスの良いアプリケーションを開発する事が出来る 非接続型のアーキテクチャ データセットを利用する事で アプリケーションは データベースに常時接続する必要が無く成り データベースに接続するのは データベースからデータセットにデータを取得する時 及び データセットの内容でデータベースを更新する時丈と成る データベースへの接続を維持し続ける為には システムリソースを大量に消費するが ADO.NET では此れを最小限に抑える事が出来る為 アプリケーションのパフォーマンスが低下する事が無い 亦 システムに懸かる負荷を減少する事が出来る為 同時に多くのユーザに 同じサービスを提供する事が可能と成る XML の採用 ADO.NET では データベースからデータセットにデータを転送する時には XML 形式で行う 亦 データセット内のデータを XML 形式でファイルに出力する事も可能で有る XML は 構造化されたデータの転送を目的と仕た標準言語で 現在では多くのアプリケーションで採用されて居る 其の為 XML をサポートして居るアプリケーション間で有れば データの転送も簡単に行う事が出来る デザインツール Windows アプリケーションを開発する時 データアクセスの中心に成るコンポーネントは データアダプタとデータセットで有る データアダプタは ウィザードを利用して簡単に作成する事が出来る データベースの接続に使用する接続文字列や データを取得したり更新したりする為の SQL ステートメントを手動で作成する必要は殆ど無い テーブルや主キー リレーションシップ等のデータセットの構造は XSD(XML Schema Definition Language) で定義される XSD は XML ドキュメントの構造を定義する為の標準言語で有る 併しデータベースに対しデータの取得や更新を行う丈で有れば XML や XSD に付いての知識は必要無い データセットの構造は 作成したデータアダプタを元にコマンドを実行する丈で 自動的に定義する事が出来る 開発効率 ADO.NET には データアクセス用のコンポーネントをデザインする為のツールが 多数用意されて居る 例えば サーバエクスプローラからテーブルをドラッグアンドドロップする丈で コネクションとデータアダプタがフォームに追加され データアクセスに必要な殆どの情報が自動的に設定され 此れを元に データセット生成のコマンドを実行すると データセットを定義する事が出来る 亦 此等のコンポーネントは コード入力時に インテリセンスが表示される等 開発の効率も向上する -7-

データアクセスの基本 Windows アプリケーションの開発手順 概要 Windows 上で動作するデータベースアプリケーションの開発は 一般に 下記の手順で行うと 効率良く開発する事が出来る 1 新規プロジェクトの作成 2 データ接続の作成 3 データアダプタ コネクションの作成 4 データセットの作成 5 Window フォームの作成 6 プログラミング 新規プロジェクトの作成 先ず 新しいプロジェクト ダイアログボックスで テンプレートから Windows アプリケーション を選択する プロジェクト名と保存場所は 適宜 適切な物を指定する -8-

データ接続の作成 データ接続は デザイン時にデータベースへの接続を確立して テーブルの構造や 登録されて居るデータを確認する為の機能で有り サーバーエクスプローラを使用して作成する アプリケーションが データ接続を直接使用する事は無い 此れは 此の後に作成するデータアダプタのプロパティを設定する際に使用する データ接続を作成するには ツール メニューの データベースへの接続 を選択する サーバエクスプローラが起動して データリンクプロパティ ダイアログが表示される プロバイダの選択 表示された データリンクプロパティ ダイアログの プロバイダ タブで データベースの接続に使用する OLE DB プロバイダを選択する Microsoft Access 2000 形式のデータベースに接続するには Microsoft Jet 4.0 OLE DB Provider を選択し 次へ ボタンをクリックする データベースの選択 同ダイアログの 接続 タブで データベース名入力用テキストボックスに 接続するデータベースの名前を入力する 通常は フルパス名を指定するが ファイル名丈を指定した場合は 実行ファイルが在るフォルダが指定された事に成る 併しファイル名丈の指定は データ接続の参照等が出来なく成る等 弊害が有る為 フルパスで指定し データベースのパスを変更する度に 接続の変更を行う事を推奨する 猶 右側の ボタンをクリックすると Access データベースの選択 ダイアログが表示され, データベースを選択する事が出来る 接続のテスト 同タブの 接続のテスト ボタンをクリックすると 接続の成否を示すダイアログが表示される 接続のテストに成功しました と謂うメッセージが表示されゝば OK ボタンをクリックし データリンクプロパティ ダイアログを終了する -9-

作成したデータ接続は サーバエクスプローラで確認する事が出来る データ接続は アプリケーションから独立したオブジェクトで有り 同じデータ接続を複数のアプリケーションで使用する事が出来る データ接続を設定する データリンクプロパティ ダイアログで重要なのは プロバイダ タブと 接続 タブで有る 接続のテストに成功しない場合は 設定値に間違いが有るので 確認する必要が有る データ接続は 常にサーバーエクスプローラに表示されて居り 右クリックする事に依り 最新の情報に更新したり 削除したり 接続の変更を行う事が出来る 亦 データ接続のノードを開く事に依り テーブル一覧やフィールド一覧を確認する事や フィールド属性をプロパティウィンドウで確認する事も出来る データアダプタとコネクションの作成 データアダプタは データベースとデータセットとの間で データを遣り取りする為のコンポーネントで有る データアダプタ構成ウィザードを使用して作成する 接続するデータベースへの情報は コネクションが保持して居るが 此れを手動で作成する必要は無い ウィザードを完了すると データアダプタと同時にコネクションも追加される データアダプタ構成ウィザードの起動 データベースからデータを取得したり データベースを更新する為のコマンドは データアダプタが保持する ツールボックスの データ タブで OleDbDataAdapter コンポーネントをダブルクリックするか フォームにドラッグ & ドロップすると データアダプタ構成ウィザード が起動するので 次へ ボタンをクリックする データアダプタは 使用するデータベースの種類に依り 使用するコンポーネントが異なる Microsoft Access や Oracle や SQL Server 等の OLE DB でアクセスするデータソースの場合は OleDbDataAdapter コンポーネントを使用し SQL Server 7.0 以上のデータソースの場合は SqlDataAdapter を使用する データアダプタの種類に依り コマンドの定義の種類に差異が有り OleDbDataAdapter では SQL ステートメントでしか定義出来ないが SqlDataAdapter では SQL ステートメント以外にストアドプロシージャを使用して定義する事も出来る データアダプタは データベースからデータの読込 (Select) レコードの追加 (Insert) 削除 (Delete) 更新 (Update) を行う為の4 種のコマンドを保持して居り 夫々れ SelectCommand プロパティ InsertCommand プロパティ DeleteCommand プロパティ UpdateCommand プロパティに設定される 猶 各コマンドは 必要が無い場合 プロパティウィンドウで ボタンをクリックし なし に設定する事で削除する事が出来る -10-

データ接続の選択 ドロップダウンリストボックスにはサーバエクスプローラに表示されて居るデータ接続の一覧が表示されるので 使用するデータ接続を選択し 次へ ボタンをクリックする クエリの種類の選択 此処では データアダプタが読み書きする方法を選択する SQL ステートメントの使用 が選択されて居る事を確認して 次へ ボタンをクリックする -11-

SQL ステートメントの生成 データベースからデータを取得する為の SQL ステートメントを作成する テキストボックスに SELECT 文を入力し 次へ ボタンをクリックする 猶 SQL ステートメントは クエリビルダでも作成する事が出来る コマンドの自動生成 前記で設定した SQL ステートメントを基にデータアダプタのコマンドが自動生成され 結果が表示されるので 完了 ボタンをクリックする -12-

但し SELECT 文の FROM 句に 主キーが設定されて居ないテーブルを指定した場合は 更新コマンドと削除コマンドが 亦 結合テーブル ( 複数のテーブルを JOIN 句で連結したテーブル ) を指定した場合は 追加コマンドと更新コマンドと削除コマンドが自動生成されない 此の様な場合は 更新用のコマンドを手動で作成する必要が有る データアダプタとコネクションの確認 データアダプタ構成ウィザードを完了すると 実行時に画面に表示されないコンポーネントを表示する領域で有るコンポーネントデザイナに OleDbDataAdapter1 と OleDbConnection1 が追加される 猶 データアダプタの名前は プログラムでも参照する為 此の時点で 参照するテーブルが解る様な名前に プロパティウィンドウの Name プロパティを変更して置く事が望ましい ( 此処では odabook と ocnbook に変更したと仕て 以降の話を進める ) -13-

データセットの作成 実行時にデータベースから取得したデータを保持する為に データセットの構造を定義する必要が有る 前記で作成したデータアダプタを基に データセットの生成 コマンドを実行すると データテーブルの構造を定義した XSD を生成する事が出来る データセットの作成 デザイナ上のデータアダプタ (OleDbDataAdapter1 odabook) を選択し データ メニューの データセットの生成 を選択すると データセットの生成 ダイアログが表示される データセット選択で 新規作成 を選択し 作成するデータセットの名前を入力して OK ボタンをクリックすると データセットの構造が定義され ソリューションエクスプローラにスキーマ (*.xsd) が コンポーネントデザイナにデータセットのインスタンスが追加される 猶 此処では SQL ステートメントの生成 で指定したテーブルが データセットに追加するテーブルの選択 ボックスで選択されて居り 此のデータセットをデザイナに追加する チェックボックスがチェックされて居る事を確認して置く 亦 データセットの名前は プログラムでも参照する為 接続するデータベースが解る様な名前を付けて置く事が望ましい -14-

Windows フォームの作成 データベースから取得したデータは テキストボックスやデータグリッド等のコントロールに出力し 値を編集する事が出来る 此れを データ連結 又は データバインディング と謂う コントロールに出力するデータは デザイン時にプロパティウィンドウで設定する事が出来る データグリッドの追加 データベースから取得したデータを出力する為に ツールボックスの Windows フォーム タブより DataGrid コントロールをフォームに追加し プロパティを下記の様に設定する コントロールの種類 プロパティ プロパティの設定値 データグリッド Name dgddisp DataSource dsbook1 DataMember 本 Anchor Top, Bottom, Left, Right コマンドボタンの追加 テーブルからデータを取得する為のボタン (btnload) と テーブルを更新する為のボタン (btnupdate) をフォームに追加し プロパティを下記の様に設定する コントロールの種類 プロパティ プロパティの設定値 ボタン1 Name btnload Text 読込 ボタン2 Name btnupdate Text 更新 -15-

プログラミング データアクセス用のコンポーネントを作成する丈では データベースを操作する事は出来ない ADO.NET では データベースから取得したデータをデータセットに格納する処理をプログラミングしなければ成らない 亦 データを連結したコントロールで値を変更した場合は 其の内容でデータベースを更新する処理も プログラミングする必要が有る データを取得するプログラム ボタン (btnload) の Click イベントハンドラに下記のコードを記述する ' ボタン ( 読込 ) がクリックされた時の処理 Private Sub btnload_click(byval sender As System.Object, ByVal e As System.EventArgs) _ Handles btnload.click odabook.fill(dsbook1, " 本 ") End Sub ボタン (btnupdate) の Click イベントハンドラに下記のコードを記述する ' ボタン ( 更新 ) がクリックされた時の処理 Private Sub btnupdate_click(byval sender As System.Object, ByVal e As System.EventArgs) _ Handles btnupdate.click odabook.update(dsbook1, " 本 ") MsgBox(" 更新しました ", MsgBoxStyle.Information, " 更新 ") End Sub 実行 アプリケーションを実行して観ると 実行直後には データグリッドのデータ領域には 何も表示されない 読込 ボタンをクリックすると データベースのテーブルの内容が表示される 此のデータグリッドでは 下記の編集操作を行う事が出来る 但し 主キーが設定されて居るフィールドには 重複した値や Null 値を設定する事は出来ない 値の変更 値を編集するセルにカーソルを移動して 値をキー入力する 新規レコードの追加 データグリッドの最下行の空行にカーソルを移動して レコードデータをキー入力する レコードの削除 レコードセレクタ ( 左端列 ) をクリックして行を選択して Delete キーを押す 猶 データグリッドでの編集は データセット内のデータを編集したに過ぎず 編集した内容をデータベースに保存するには 更新 (Update) を行う必要が有る -16-

コネクションの Name プロパティ 機能 書式 解説 コネクションの名前を取得 設定するプロパティ Object.Name = 文字列 データアダプタの各コマンドの Connection プロパティの設定に使用するコネクションの名前を取得 設定する 上記の Object には 有効な OleDbConnection コンポーネントを指定する データアダプタ構成ウィザードで OleDbDataAdapter と同時に生成される OleDbConnection の名前で有り 自由に設定する事が出来るが 実行時に名前を変更する事は 混乱を招く原因と成る為 避ける可きで有る 猶 デザイン時に 名前を変更すると 対応するデータアダプタの Connection プロパティの値も自動的に更新される コネクションの ConnectionString プロパティ 機能 書式 解説 データベースへの接続情報を取得 設定するプロパティ Object.ConnectionString = 文字列 データベースに接続する為のプロバイダ名やデータベース名等の情報を取得 設定する 上記の Object には 有効な OleDbConnection コンポーネントを指定する 接続文字列は サーバーエクスプローラでデータ接続を作成する時 データリンクプロパティ ダイアログで設定した値を基に 自動的に生成され 特に編集する必要は無い 接続文字列に含まれる主なキーワードは 下記の通りで有る キーワード 意味 Provider 接続するデータベースに対応する OLEDB プロバイダ名 DataSource 接続するデータベースのファイル名 ( パスを含む ) UserID データベースのログインに使用するユーザー ID Password データベースのログインに使用するパスワード Integrated Security 接続のセキュリティ保護設定 Initial Catalogue データベース名 下記に 主なデータベースと 其れに対応する OLEDB プロバイダを示す データベース Microsoft Access 97 形式 Microsoft Access 2000 形式 Oracle データベース Microsoft SQL Server プロバイダ Microsoft Jet OLE DB 3.51 Provider Microsoft Jet OLE DB 4.0 Provider Microsoft OLE DB for Oracle Microsoft OLE DB for SQL Server ODBC データソースにアクセスする場合は ODBC.NET データプロバイダを使用する 此のプロバイダは http://msdn.microsoft.com/downloads からダウンロードする事が出来る -17-

データアダプタの Command プロパティ 機能 書式 解説 SQL ステートメントやストアドプロシージャを取得 設定するプロパティ Object.SelectCommand = SQL ステートメント ( 選択コマンド ) Object.InsertCommand = SQL ステートメント ( 追加コマンド ) Object.DeleteCommand = SQL ステートメント ( 削除コマンド ) Object.UpdateCommand = SQL ステートメント ( 更新コマンド ) データソース内のレコードを操作する為の SQL ステートメントやストアドプロシージャを取得 設定する 上記の Object には 有効な OleDbDataAdapter コンポーネントを指定する 設定値の SQL ステートメントには SQL ステートメントかストアドプロシージャの孰れかを指定する SelectCommand には テーブルから指定したレコードを取得する SELECT 文が格納される InsertCommand には テーブルに新しいレコードを追加する INSERT 文が格納される DeleteCommand には テーブルからレコードを削除する DELETE 文が格納される UpdateCommand には テーブルの内容を更新する UPDATE 文が格納される 此等は データアダプタ構成ウィザードで 元と成る選択クエリを指定する丈で 各コマンドが自動生成されるが 此のプロパティを変更する事に依り 自由に書き換える事が出来る 此等のプロパティは ノード内に更に子プロパティを持つ 代表的な物を 下記に示す CommandText プロパティ コマンドの内容を管理するプロパティで有る 右端の ボタンをクリックすると クエリビルダが起動して コマンドを編集する事が出来る Connection プロパティ データベースへの接続情報を保持するプロパティで有る 此の値は データアダプタ構成ウィザードで OleDbDataAdapter と同時に生成される OleDbConnection の Name プロパティの値で有る Parameters コレクション 追加コマンド 削除コマンド 更新コマンドで 処理の対象と成るレコードを特定する為のパラメータを管理するプロパティで有る 右端の ボタンをクリックするとコレクションエディタが起動してパラメータを確認する事が出来るが 特にパラメータの内容を変更する必要は無い 猶 不要なコマンドは Command プロパティの右端の ボタンをクリックして なし を選択すると 削除する事が出来るが 削除したコマンドは 自動で生成する事は出来ない為 注意を要する -18-

データアダプタの Fill メソッド 機能 書式 解説 データアダプタの選択コマンドを実行するメソッド Object.Fill( データセット名, データテーブル名 ) データセット名とデータテーブル名を使用して データソース内の列と一致する様にデータセット内の行 ( レコード ) を追加 更新する 引数のデータセット名には レコードと 必要に応じてスキーマを格納する為のデータセットを指定し必ず指定する 通常は データセットの生成 コマンドを実行した時にコンポーネントデザイナに追加されるデータセットのインスタンスの名前を指定する 引数のデータテーブル名には テーブルマップに使用するソーステーブルの名前を指定し 必ず指定する 通常は データセットに定義されて居るデータテーブルの名前を指定する 特に変更しない限り データテーブルの名前は SELECT ステートメントの FROM 句に指定したテーブルと同じ名前に成る Fill メソッドは 下記の順序で操作を行う 1.SelectCommand の Connection プロパティに従いデータベースに接続する 2.SelectCommand の CommandText プロパティに定義されて居る SQL 文を実行する 3. 取得したデータをデータセットに格納する 4. データベースへの接続を解除する データアダプタの Update メソッド 機能 書式 解説 データセット内の変更を更新するメソッド Object.Update( データセット名, データテーブル名 ) データセットに加えられた追加 更新 削除をデータベースに反映させる 引数のデータセット名には データソースの更新に使用するデータセットを指定し必ず指定する 通常は データセットの生成 コマンドを実行した時にコンポーネントデザイナに追加されるデータセットのインスタンスの名前を指定する 引数のデータテーブル名には テーブルマップに使用するソーステーブルの名前を指定し 必ず指定する 通常は データセットに定義されて居るデータテーブルの名前を指定する 特に変更しない限り データテーブルの名前は SELECT ステートメントの FROM 句に指定したテーブルと同じ名前に成る Update メソッドは 下記の順序で操作を行う 1. 各コマンドの Connection プロパティに従いデータベースに接続する 2. 各コマンドの CommandText プロパティに定義されて居る SQL 文を実行する 3. データベースへの接続を解除する 上記の各コマンドとは InsertCommand UpdateCommand DeleteCommand を謂い 何のコマンドを実行するかは データテーブルに為された編集操作に応じて データアダプタが判断する 例えばレコードの削除丈を行った場合は 削除コマンド (DeleteCommand) 丈が実行され 追加コマンドや更新コマンドは実行されない -19-

データ連結を行う為のプロパティ 機能 書式 解説 データ連結を行うプロパティ Object.DataSource = データソース名 Object.DataMember = データメンバ名 ( 複合データバインディング ) Object.Text = データメンバ名 ( 単純データバインディング ) フォーム上のコントロールとデータを連結する Windows フォームのコントロールにデータを連結するには 下記の 2 種類の方法が有る 単純データバインディング コントロールにデータテーブルの 1 フィールドを連結する方法で有る テキストボックスやラベルにデータを連結する場合に使用する 此の場合は Text プロパティを設定する丈で良い 複合データバインディング コントロールにデータテーブルの複数レコードを連結する方法で有る データグリッドやコンボボックスやリストボックスにデータを連結する場合に使用する 此の場合は DataSource プロパティと DataMember プロパティを設定する 上記の Object には 有効な Windows フォームのコントロールを指定する 設定値のデータソース名には 連結するデータテーブルを定義したデータセット名を指定し 必ず指定する 通常は データセットの生成 コマンドを実行した時にコンポーネントデザイナに追加されるデータセットのインスタンスの名前を指定する 設定値のデータメンバ名には コントロールに出力するデータテーブル ( 複合データバインディングの場合 ) か フィールド ( 単純データバインディングの場合 ) を指定し 必ず指定する 此の値は プロパティウィンドウで選択可能で有る 猶 複合データバインディングの場合は 単純にプロパティウィンドウで DataSourec プロパティや DataMember プロパティを選択して 右端の ボタンをクリックして表示される一覧から設定項目を選択すれば良いが 単純データバインディングの場合は 単純にプロパティウィンドウで Text プロパティを選択しても値を設定する事は出来ない 此の場合は DataBindings のノードを開き 其の中の Text プロパティを選択して 右端の ボタンをクリックして表示される一覧から設定項目を選択 ( ダブルクリック ) する 亦 DataSource プロパティには データセット名の他に データテーブルやデータビューを指定する事が出来る 此の場合は DataMember プロパティを設定する必要は無い -20-

データアクセスの利用 Windows フォームを使用したデータベース操作 概要 データセットに保持して居るデータは フォーム上のコントロールに連結して 値を表示したり 編集したりする事が出来る 此処では Windows フォームにデータを連結して データを編集する方法に付いて解説する レコードの移動 ADO.NET には カレントレコードと謂う概念が無い 其の為 ADODB の様にカレントレコードを移動する為の MoveFirst MovePrevious MoveNext MoveLast と謂う命令は無い -21-