ADO.NETのアーキテクチャ

Similar documents
データアダプタ概要

データアダプタ概要

Visual Basic Oracle Database 11 Release 1

VB.NET解説

VB実用③ アクセス操作Ⅰ

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

mySQLの利用

ファイル操作-バイナリファイル

ファイル操作

ICONファイルフォーマット

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

MVP for VB が語る C# 入門

DAOの利用

プロセス間通信

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

Oracle Lite Tutorial

Microsoft認定資格問題集(70-483_demo)

Visual Basic Oracle Database 11g Release 1

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

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

Oracle Lite Tutorial

構造体

いまさら聞けないVB2008 ADO.NET超入門

プラグイン

Oracle Lite Tutorial

ファイル操作

VB実用④ アクセス操作Ⅱ

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

Microsoft Office操作(EXCEL)

VB.NET解説

Userコントロール

NetCOBOL for .NET 応用編

Microsoft PowerPoint - odd_odpnet.ppt

TableAdapterクラス

スライド 1

VB実用① データベースⅠ

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

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

untitled

ハッシュテーブル

データアダプタ詳細

WCF と IIS を使用して OData プロデューサーを作成する

意外と簡単!?

正規表現応用

ファイル監視

NotifyIconコントロール

XMLプログラミング(ADO編)

ADOとADO.NET

MicrosoftVisualStudio.NET による ASP.NETWeb アプリケーションの開発 (#2334)(MP301)5 日間 () コースの概要 このコースでは VisualBasic.NETまたは C# プログラマで Web 開発の初心者が ASP.NETを使用して Web アプ

グラフィックス

データベースⅠ

10-C.._241_266_.Z

検証報告書


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

ListViewコントロール

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

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


.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~


3軸加速度センサーモジュール MM-2860 書込み済みマイコンプログラム通信コマンド概要

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

intra-mart Accel Platform

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

Oracle Database 11g Release 2 Application Development (.NET)

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

データベース1

印刷

GUIプログラムⅡ

データベース1

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

XML Consortium 2009/5/8 XML Consortium Enterprise2.0 アプリを支えるクラウド基盤としての Windows Azure XML コンソーシアム Web 2.0 部会 日立ソフト宮崎昭世 Microsoft MVP for Development Pl

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

NetCOBOL for .NET 応用編

TestDesign for Web

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

Microsoft Word - oo4o_extra.doc

PowerPoint プレゼンテーション

Microsoft PowerPoint - 1_コンパイラ入門セミナー.ppt

VFD256 サンプルプログラム

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

印刷

Java - Visual Editor

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

データを TreeView コントロールで表示 VisualStudio2017 の Web サイトプロジェクトで bootstrap, 及び script フォルダの js ファイルが使用できるマスターページを親とする TestTreeView.aspx ページを作成します 下記の html コー

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

データベース1

システム必要条件 - SAS Add-In 7.1 for Microsoft Office

Oracle、MS Access または SQL DB と CVP スタンドアロン配備を統合方法

目次 1. HLA Fusion 3.0 がインストール可能な環境 HLA Fusion 3.0 のインストール HLA Fusion 3.4 のインストール 初期設定用データベース接続 ( 初めての方のみ ) 既存データベースのUpg

第14回若年者ものづくり競技大会「業務用ITソフトウェア・ソリューションズ」職種 模擬競技課題

ASP.NET 2.0 Provider Model 概要

システム必要条件 - SAS Add-In 7.1 for Microsoft Office

SharpShooter Reports.WPF 基本的な使い方 Last modified on: November 15, 2012 本ドキュメント内のスクリーンショットは英語表記ですが SharpShooter Reports JP( 日本語版 ) では日本語で表示されます

正規表現詳細

Oracle Data Provider for .NET の新機能

VB6互換のファイルの処理

Oracle SQL Developerの移行機能を使用したOracle Databaseへの移行

Acronis® Backup & Recovery ™ 10 Advanced Editions

Transcription:

データベース ADO.NET のアーキテクチャ 従来のデータ処理は 主に接続をベースとした 2 層モデルに基づいて居た 最近のデータ処理では 多階層アーキテクチャが多用される様に成った為 プログラマは 非接続型アプローチへと切り替えて アプリケーションに より優れたスケーラビリティを提供して居る ADO.NET のコンポーネント ADO.NET には データへのアクセスとデータの操作に使用出来るコンポーネントが 2 つ有る.NET Framework データプロバイダ.NET Framework データプロバイダは データの操作と データに対する高速 且つ 前方参照専用読込専用のアクセスを実行する事を明確な目標と仕てデザインされたコンポーネントで有る Connection オブジェクトはデータソースとの接続機能を提供する Command オブジェクトに依ってデータベースコマンドにアクセス出来る為 データの返却 データの修正 格納されたプロシージャの実行 及び パラメータ情報の送信やは取得を実行出来る DataReader は データソースからの高いパフォーマンスのデータストリームを提供する 最後に DataAdapter は DataSet オブジェクトとデータソース間のブリッジを提供する DataAdapter は Command オブジェクトを使用して DataSet とデータの両方を読み込んだデータソースに SQL コマンドを実行し DataSet 内で変更されたデータの内容をデータソースに戻す DataSet ADO.NET DataSet は 何のデータソースにも依存しないデータアクセスを明確な目的と仕てデザインされて居る 従って 複数の異なるデータソースと併用したり XML データと併用したり アプリケーションに取ってローカルなデータを管理する為に使用したり出来る DataSet には DataTable オブジェクト内のデータに関する主キー 外部キー 制約 及び リレーション情報丈でなく データの行と列で構成される複数の DataTable オブジェクトのコレクションが含まれる.NET Framework データプロバイダと DataSet のリレーションシップを次の図に示す ADO.NET のアーキテクチャ -1-

DataReader 又は DataSet の選択 アプリケーションで DataReader( DataReader に依るデータの取得 を参照 ) 又は DataSet ( ADO.NET での DataSet の使用 を参照 ) を使用する必要が有るか何うかを判断する場合は アプリケーションが必要とする機能の種類を考慮する必要が有る 以下を実行する場合は DataSet を使用する アプリケーションでデータをローカルにキャッシュすると 其のデータを操作出来る クエリの実行結果を読み取る必要が有る場合は DataReader の使用を推奨する 層間で 又は XML Web サービスからデータをリモート処理する場合 Windows フォームコントロールとの連結 又は 複数ソースに属するデータの組み合わせや関連付け等 データと動的に対話する場合 データソースとの接続を開かずにデータに対する広範な処理を実行する場合 ( 他のクライアントが使用出来る様に 接続が解放される ) DataSet に依って提供される機能が必要無い場合は DataReader を使用して前方参照専用 読取専用の方法でデータを返す事に依り アプリケーションのパフォーマンスを向上させる事が出来る DataAdapter は DataReader を使用して DataSet( DataAdapter からの DataSet の読み込み を参照 ) の内容を入力して居るが DataReader を使用するとパフォーマンスを向上させる事が出来る 此れは DataSet の内容を作成 及び 入力する為に必要な処理が不要に成る丈でなく DataSet が消費するメモリが節約される為で有る XML と ADO.NET ADO.NET は XML の機能を活用して データに対する非接続型アクセス機能を提供する ADO.NET は.NET Framework に属する XML クラスと密接に連携してデザインされて居る 此等は孰れも同じアーキテクチャに属するコンポーネントで有る.NET Framework 内の ADO.NET 及び XML クラスは DataSet オブジェクトの中に集められて居る DataSet に XML のソース ( ファイル 又は XML ストリーム ) に含まれるデータを入力出来る DataSet 内のデータソースとは関係無く DataSet を XML スキーマ定義言語 (XSD) スキーマを含めた W3C(World Wide Web Consortium) 準拠の XML と仕て書く事が出来る DataSet のネイティブのシリアル化形式は XML で有る事から 層間でデータを移動する優れた媒体と成る DataSet は XML Web サービスとの間でデータとスキーマコンテキストをリモート処理する場合に最適で有る ADO.NET プラットフォームの要件 Microsoft.NET Framework SDK(ADO.NET を含む ) は MicrosoftR Windows XP Microsoft Windows 2000 Microsoft Windows NT 4 with Service Pack 6a Microsoft Windows Millennium Edition Microsoft Windows 98 Microsoft Windows CE の各プラットフォーム上でサポートされて居る.NET Framework Data Provider for OLE DB 及び.NET Framework Data Provider for ODBC には MDAC 2.6 以降のインストールが必要で有る 亦 MDAC 2.8 Service Pack 1(SP1) をインストールする事を推奨する MDAC 2.8 SP1 は Data Access and Storage Developer Center からダウンロードする事が出来る 次のサンプルコードでは アプリケーションに名前空間 System.Data をインクルードして ADO.NET を使用する方法を示す -2-

Visual Basic Imports System.Data C# using System.Data; ADO.NET クラスは System.Data.dll に含まれて居り System.Xml.dll に含まれる XML クラスと統合される 名前空間 System.Data を使用したコードをコンパイルする場合は System.Data.dll と System.Xml.dll の両方を参照する ADO.NET アプリケーションの例に付いては ADO.NET の応用例 を参照され度い 層 及び クライアント間のリモート処理 又は マーシャリング DataSet のデザインに依って XML Web サービスを使用してクライアントにデータを Web 経由で簡単に転送したり.NET リモートサービスを使用して.NET コンポーネント間でデータをマーシャリングしたり出来る 亦 此の様に仕て 厳密に型指定された DataSet をリモート処理出来る XML Web サービスの概要に付いては XML Web サービスの概要 を参照され度い XML Web サービスから DataSet を使用する例に付いては XML Web サービスからの DataSet の使用 を参照され度い リモートサービスの概要に付いては.NET Framework リモート処理の概要 を参照され度い ADO.NET 2.0 では DataTable オブジェクトは リモート処理サービス 及び XML Web サービスを併用する事が出来る -3-

ADO.NET の応用例 データソースから結果を返し コンソールやコマンドプロンプトに出力を書き込む単純な ADO.NET の応用例を以下に示す 此の資料に有るサンプルは 下記のプロバイダを使用して データソースへ接続し データを取得する方法を示して居る 必要で有れば 総てのデータプロバイダを単一のアプリケーション内で使用する事も出来る.NET Framework Data Provider for SQL Server(System.Data.SqlClient).NET Framework Data Provider for OLE DB(System.Data.OleDb).NET Framework Data Provider for ODBC(System.Data.Odbc).NET Framework Data Provider for Oracle(System.Data.OracleClient) 次の SqlClient の例では Microsoft SQL Server 7.0 以降のサンプルのデータベース Northwind と接続し SqlDataReader を使用して Categories テーブルからレコードのリストを返す事が出来る物とする OleDb 及び Odbc の例では サンプルデータベースの Microsoft Access Northwind との接続を前提と仕て居る OracleClient の例では Oracle サーバー上の DEMO.CUSTOMER との接続を前提と仕て居る 亦 System.Data.OracleClient.dll への参照を追加する必要が有る DataReader の詳細に付いては DataReader に依るデータの取得 を参照され度い SqlClient Visual Basic Option Explicit On Option Strict On Imports System Imports System.Data Imports System.Data.SqlClient Public Class Program Public Shared Sub Main( ) Dim connectionstring As String = GetConnectionString( ) Dim querystring As String = _ "SELECT CategoryID, CategoryName FROM dbo.categories;" Using connection As New SqlConnection(connectionString) Dim command As SqlCommand = connection.createcommand( ) command.commandtext = querystring Try connection.open( ) Dim datareader As SqlDataReader = command.executereader( ) Do While datareader.read( ) Console.WriteLine(vbTab & "0" & vbtab & "1", datareader(0), datareader(1)) Loop datareader.close( ) Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using End Sub -4-

Private Shared Function GetConnectionString( ) As String ' To avoid storing the connection string in your code, ' you can retrieve it from a configuration file. Return "Data Source=(local);Initial Catalog=Northwind;" & "Integrated Security=SSPI;" End Function End Class C# using System; using System.Data; using System.Data.SqlClient; class Program static void Main( ) string connectionstring = GetConnectionString( ); string querystring = "SELECT CategoryID, CategoryName FROM dbo.categories;"; using (SqlConnection connection = new SqlConnection(connectionString)) SqlCommand command = connection.createcommand( ); command.commandtext = querystring; try connection.open( ); SqlDataReader reader = command.executereader( ); while (reader.read( )) Console.WriteLine(" t0 t1", reader[0], reader[1]); reader.close( ); catch (Exception ex) Console.WriteLine(ex.Message); static private string GetConnectionString( ) // To avoid storing the connection string in your code, // you can retrieve it from a configuration file. return "Data Source=(local);Initial Catalog=Northwind; Integrated Security=SSPI"; OleDb Visual Basic Option Explicit On Option Strict On Imports System Imports System.Data -5-

Imports System.Data.OleDb Public Class Program Public Shared Sub Main( ) Dim connectionstring As String = GetConnectionString( ) Dim querystring As String = "SELECT CategoryID, CategoryName FROM Categories;" Using connection As New OleDbConnection(connectionString) Dim command As OleDbCommand = connection.createcommand( ) command.commandtext = querystring Try connection.open( ) Dim datareader As OleDbDataReader = command.executereader( ) Do While datareader.read( ) Console.WriteLine(vbTab & "0" & vbtab & "1", datareader(0), datareader(1)) Loop datareader.close( ) Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using End Sub Private Shared Function GetConnectionString( ) As String ' To avoid storing the connection string in your code, ' you can retrieve it from a configuration file. ' Assumes Northwind.mdb is located in c: Data folder. Return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _ & "c: Data Northwind.mdb;User Id=admin;Password=;" End Function End Class C# using System; using System.Data; using System.Data.OleDb; class Program static void Main( ) string connectionstring = GetConnectionString( ); string querystring = "SELECT CategoryID, CategoryName FROM Categories;"; using (OleDbConnection connection = new OleDbConnection(connectionString)) OleDbCommand command = connection.createcommand( ); command.commandtext = querystring; try connection.open( ); OleDbDataReader reader = command.executereader( ); while (reader.read( )) Console.WriteLine(" t0 t1", reader[0], reader[1]); -6-

reader.close( ); catch (Exception ex) Console.WriteLine(ex.Message); static private string GetConnectionString( ) // To avoid storing the connection string in your code, // you can retrieve it from a configuration file. // Assumes Northwind.mdb is located in the c: Data folder. return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "c: Data Northwind.mdb;User Id=admin;Password=;"; Odbc Visual Basic Option Explicit On Option Strict On Imports System Imports System.Data Imports System.Data.Odbc Public Class Program Public Shared Sub Main( ) Dim connectionstring As String = GetConnectionString( ) Dim querystring As String = "SELECT CategoryID, CategoryName FROM Categories;" Using connection As New OdbcConnection(connectionString) Dim command As OdbcCommand = connection.createcommand( ) command.commandtext = querystring Try connection.open( ) Dim datareader As OdbcDataReader = command.executereader( ) Do While datareader.read( ) Console.WriteLine(vbTab & "0" & vbtab & "1", datareader(0), datareader(1)) Loop datareader.close( ) Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using End Sub Private Shared Function GetConnectionString( ) As String ' To avoid storing the connection string in your code, ' you can retrieve it from a configuration file. ' Assumes Northwind.mdb is located in c: Data folder. -7-

Return "Driver=Microsoft Access Driver (*.mdb);" _ & "Dbq=c: Data Northwind.mdb;Uid=Admin;Pwd=;" End Function End Class C# using System; using System.Data; using System.Data.Odbc; class Program static void Main( ) string connectionstring = GetConnectionString( ); string querystring = "SELECT CategoryID, CategoryName FROM Categories;"; using (OdbcConnection connection = new OdbcConnection(connectionString)) OdbcCommand command = connection.createcommand( ); command.commandtext = querystring; try connection.open( ); OdbcDataReader reader = command.executereader( ); while (reader.read( )) Console.WriteLine(" t0 t1", reader[0], reader[1]); reader.close( ); catch (Exception ex) Console.WriteLine(ex.Message); static private string GetConnectionString( ) // To avoid storing the connection string in your code, // you can retrieve it from a configuration file. // Assumes Northwind.mdb is located in the c: Data folder. return "Driver=Microsoft Access Driver (*.mdb);" + "Dbq=c: Data Northwind.mdb;Uid=Admin;Pwd=;"; OracleClient Visual Basic Option Explicit On Option Strict On Imports System Imports System.Data Imports System.Data.OracleClient -8-

Public Class Program Public Shared Sub Main( ) Dim connectionstring As String = GetConnectionString( ) Dim querystring As String = "SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER" Using connection As New OracleConnection(connectionString) Dim command As OracleCommand = connection.createcommand( ) command.commandtext = querystring Try connection.open( ) Dim datareader As OracleDataReader = command.executereader( ) Do While datareader.read( ) Console.WriteLine(vbTab & "0" & vbtab & "1", datareader(0), datareader(1)) Loop datareader.close( ) Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using End Sub Private Shared Function GetConnectionString( ) As String ' To avoid storing the connection string in your code, ' you can retrieve it from a configuration file. Return "Data Source=ThisOracleServer;Integrated Security=yes;" End Function End Class C# using System; using System.Data; using System.Data.OracleClient; class Program static void Main( ) string connectionstring = GetConnectionString( ); string querystring = "SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER"; using (OracleConnection connection = new OracleConnection(connectionString)) OracleCommand command = connection.createcommand( ); command.commandtext = querystring; try connection.open( ); OracleDataReader reader = command.executereader( ); while (reader.read( )) Console.WriteLine(" t0 t1", reader[0], reader[1]); reader.close( ); catch (Exception ex) -9-

Console.WriteLine(ex.Message); static private string GetConnectionString( ) // To avoid storing the connection string in your code, // you can retrieve it from a configuration file. // Assumes Northwind.mdb is located in the c: Data folder. return "Data Source=ThisOracleServer;Integrated Security=yes;"; -10-