 ADO.NET Overview  ADO.NET Classes. ADO.NET Overview Looking Back  ODBC (Open Database Connectivity)  Interoperability to a wide range of database.

Slides:



Advertisements
Similar presentations
17. Data Access ADO.Net Architecture New Features of ADO.NET
Advertisements

Database Connections with ASP.Net
ADO.NET: Working in Disconnected Environment Sergey Baidachni MCT, MCSD, MCDBA.
ADO vs ADO.NET ADOADO.NET Client/server coupledDisconnected collection of data from data server Uses RECORDSET object (contains one table) Uses DATASET.
By Chris Pascucci and FLF
Chapter 10 ADO. What is ADO? ADO is a Microsoft technology ADO stands for ActiveX Data Objects ADO is a programming interface to access data in a database.
Introduction to Database Processing with ADO.NET.
1 ADO.NET. 2.NET Framework Data Namespaces System.Data –Base set of classes and interfaces for ADO.NET System.Data.Common –Classes shared by the.NET Data.
ADO. NET. What is “ADO.Net”? ADO.Net is a new object model for dealing with databases in.Net. Although some of the concepts are similar to the classical.
14 1 Chapter 14 Database Connectivity and Web Development Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
ASP.NET Programming with C# and SQL Server First Edition Chapter 8 Manipulating SQL Server Databases with ASP.NET.
Chapter 12 Database Connectivity with ASP.NET JavaScript, Third Edition.
Programming in ADO.NET: Data-Centric Applications and ADO.NET Original copyright by Microsoft, 2002, with minor modifications by Dan Eaves, 2005.
Objective In this session we will discuss about : What is ADO. NET ?
Overview of ADO.NET Chapter 1 ADO.NET 4.0 Development.
Overview of Database Access in.Net Josh Bowen CIS 764-FS2008.
CIS 764 – Presentation Somil Chandwani.  With Microsoft Data Access Components (MDAC), developers can connect to and use data from a wide variety of.
ADO.NET – part II August 2004 [ Marmagna Desai]. CONTENTS ADO vs ADO.NET ADO.NET – Managed providers Connecting to Database SqlConnection Selecting Database.
Databases and Data Access Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.
Programming with Visual Basic.NET An Object-Oriented Approach  Chapter 8 Introduction to Database Processing.
ODBC, OLE DB, and ADO Introduction Dr. Ron Eaglin.
ADO.NET A2 Teacher Up skilling LECTURE 3. What’s to come today? ADO.NET What is ADO.NET? ADO.NET Objects SqlConnection SqlCommand SqlDataReader DataSet.
Fundamentals of Database Chapter 7 Database Technologies.
Developing Web Applications Using Microsoft ® Visual Studio ® 2008.
A Simple Introduction. What is ADO.net? First the word ADO stands for ActiveX Data Objects And it is an integral part of.Net Framework of Microsoft hence.
Lecture Set 14 B new Introduction to Databases - Database Processing: The Connected Model (Using DataReaders)
Needs for Accessing Database To make your web site more dynamic and maintainable, you can display information on your web pages that are retrieved from.
Databases and Data Access  Introduction to ADO.NET  ADO.NET objects  ADP.NET namespaces  Differences between ADO and ADO.NET.
.NET Data Access and Manipulation ADO.NET. Overview What is ADO.NET? Disconnected vs. connected data access models ADO.NET Architecture ADO.NET Core Objects.
1 Introduction to ADO.NET Microsoft ADO.NET 2.0 Step by Step Rebecca M Riordan Microsoft Press, 2006.
Chapter 3 Introduction to ADO.NET 3.1 The ADO and ADO.NET ActiveX Data Object (ADO) is developed based on Object Linking and Embedding (OLE) and Component.
Universal Data Access and OLE DB. Customer Requirements for Data Access Technologies High-Performance access to data Reliability Vendor Commitment Broad.
Moving from Microsoft ® ADO 2.X To ADO.NET Jackie Goldstein Renaissance Computer Systems Ltd. MSDN Regional Director, Israel Prerequisites.
Database, SQL, and ADO.NET- Part 1 Session 11 Mata kuliah: M0874 – Programming II Tahun: 2010.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL ADO.Net Basics Ruwan Wijesinghe Trainer.
Objectives In this lesson, you will learn to: *Identify the need for ADO.NET *Identify the features of ADO.NET *Identify the components of the ADO.NET.
ASP.NET Rina Zviel-Girshin Lecture 5
Module 9: Accessing Relational Data Using Microsoft Visual Studio.NET.
Session 8: ADO.NET. Overview Overview of ADO.NET What is ADO.NET? Using Namespaces The ADO.NET Object Model What is a DataSet? Accessing Data with ADO.NET.
Module 7: Accessing Data by Using ADO.NET
Christopher M. Pascucci.NET Programming: Databases & ADO.NET.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 Introduction to ADO.NET ADO.NET - Lesson 01  Training time: 10 minutes  Author:
3-Tier Client/Server Internet Example. TIER 1 - User interface and navigation Labeled Tier 1 in the following graphic, this layer comprises the entire.
Presented by Joseph J. Sarna Jr. JJS Systems, LLC
Lecture Set 14 B new Introduction to Databases - Database Processing: The Connected Model (Using DataReaders)
An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.
ADO.NET connections1 Connecting to SQL Server and Oracle.
 It is the primary data access model for.Net applications  Next version of ADO  Can be divided into two parts ◦ Providers ◦ DataSets  Resides in System.Data.
1 Data Classes- DataView DataGridView Control. Objectives 2  Data Class  DataAdapter  DataReader  DataSet  DataTable  DataView  DataGridView Control.
Why ADO.NET Not your father’s Data Access.
Why ADO.NET Not your father’s Data Access.
ADO.NET FUNDAMENTALS BEGINNING ASP.NET 3.5 IN C#.
Module 4 Introduction ADO.NET.
C# .NET Software Development
Active Data Objects Using.Net ADO.Net Farooq Ahmed Amna Umber Summayya Shehzad.
Module 5 Data Classes DataView – DataGridView Control 1.
DAT200 Microsoft® ADO.NET for ADO Classic Developers: Introducing ADO.NET Jackie Goldstein Renaissance Computer Systems
Module 2: Using ADO.NET to Access Data. Overview ADO.NET Architecture Creating an Application That Uses ADO.NET to Access Data Changing Database Records.
Data Access. ADO.NET ADO.NET is the primary library for building database solutions within the.NET Framework. ADO.NET does not replace ADO. ADO and OLEDB.
ADO .NET from. ADO .NET from “ADO .Net” Evolution/History of ADO.NET MICROSOFT .NET “ADO .Net” Evolution/History of ADO.NET History: Most applications.
.NET Data Access and Manipulation
ASP.NET Programming with C# and SQL Server First Edition
Data Access with ADO.NET
Introduction to ADO.NET
Introduction to Database Processing with ADO.NET
Databases and Data Access
Introduction to Database Processing with ADO.NET
ADO.NET Framework.
Chapter 10 ADO.
Introduction to Database Programming through ADO. NET
Presentation transcript:

 ADO.NET Overview  ADO.NET Classes

ADO.NET Overview Looking Back  ODBC (Open Database Connectivity)  Interoperability to a wide range of database management systems (DBMS)  Widely accepted API  Uses SQL as data access language  DAO (Data Access Objects)  Programming interface for JET/ISAM databases  Uses automation (ActiveX, OLE automation)  RDO (Remote Data Objects)  Tighter coupling to ODBC  Geared more to client/server databases (vs. DAO)

ADO.NET Overview Looking Back  OLE DB  Broad access to data, relational and other  Built on COM  Not restricted to SQL for retrieving data  Can use ODBC drivers  Low-level (C++) interface  ADO (ActiveX Data Objects)  Simple component-based, object-oriented interface  Provides a programming model to OLE DB accessible outside of C++

ADO.NET Overview Looking Back ADO ODBC ProviderSimple ProviderNative Provider OLE DB Provider ODBC ODBC Driver Text File Database OLE DB Provider Mainframe OLE DB Your Application

ADO.NET Overview Looking Back  ADO was designed as a connected, tightly coupled model  Appropriate for client/server architectures  Primarily relational (not hierarchical like XML)  Object design is not well factored  Too many ways to do the same thing  Objects try to do too much  Not originally designed for a distributed, n-tier environment

ADO.NET Overview What Is ADO.NET?  ADO.NET is a collection of classes, interfaces, structures, and enumerated types that manage data access from relational data stores within the.NET Framework  These collections are organized into namespaces:  System.Data, System.Data.OleDb, System.Data.SqlClient, etc.  ADO.NET is an evolution from ADO.  Does not share the same object model, but shares many of the same paradigms and functionality!

ADO.NET Overview ADO.NET Goals  Well-factored design  Highly scaleable through a robust disconnected model  Rich XML support (hierarchical as well as relational)  Data access over HTTP  Maintain familiar ADO programming model  Keep ADO available via.NET COM interoperability

ADO.NET Overview Managed Providers  Merges ADO and OLEDB into one layer  Each provider contains a set of classes that implement common interfaces  Initial managed provider implementations:  ADO Managed Provider: provides access to any OLE DB data source  SQL Server Managed Provider: provides optimal performance when using SQL Server  Exchange Managed Provider: retrieve and update data in Microsoft Exchange

ADO.NET Overview Managed Providers SQL Managed Provider SQL Server Database ADO.NET Managed Provider ADO Managed Provider OLE DB Provider Database Your Application

ADO.NET Overview Data Access Styles  Connected: Forward-only, read-only  Application issues query then reads back results and processes them  “Firehose” cursor  DataReader object  Disconnected  Application issues query then retrieves and stores results for processing  Minimizes time connected to database  DataSet object

ADO.NET Overview Data Binding  Key component of Web Forms framework  Flexible and easy to use  Bind a control’s property to information in any type of data store  Provides control over how data moves back and forth  Simple controls for displaying a single value  Complex controls for displaying a data structure '/>

Agenda  Database Theory and History  Relational Database Concepts and Terminology  ADO.NET Overview  ADO.NET Classes

ADO.NET Classes IDbConnection Interface  Creates a unique session with a data source  Implemented by SqlDbConnection and OleDbConnection  Functionality  Open, close connections  Begin transactions  IDbTransaction provide Commit and Rollback methods  Used in conjunction with IDbCommand and IDataAdapter objects  Additional properties, methods and collections depend on the provider

ADO.NET Classes IDbCommand Interface  Represents a statement to be sent to a data source  Usually, but not necessarily SQL  Implemented by OleDbCommand and SqlCommand  Functionality  Define statement to execute  Execute statement  Pass and retrieve parameters  Create a prepared (compiled) version of command  ExecuteReader returns rows, ExecuteNonQuery doesn’t, ExecuteScalar returns single value  Additional properties, methods and collections depend on the provider

ADO.NET Classes IDataReader Interface  Forward-only, read-only (“fire hose”) access to a stream of data  Implemented by SqlDataReader and OleDbDataReader  Created via ExecuteReader method of IDbCommand  Operations on associated IDbConnection object disallowed until reader is closed

ADO.NET Classes System.Data.OleDb Namespace  Managed provider for use with OLEDB providers  SQLOLEDB (SQL Server) – use System.Data.SQL  MSDAORA (Oracle)  JOLT (Jet)  OLEDB for ODBC providers  OleDbConnection, OleDbCommand and OleDbDataReader classes  Classes for error handling  Classes for connection pooling

ADO.NET Classes DataReader Example string sConnString = “Provider=SQLOLEDB.1;” + “User ID=sa;Initial Catalog=Northwind;” + “Data Source=MYSERVER”; OleDbConnection conn = new OleDbConnection(sConnString); conn.Open(); string sQueryString = “SELECT CompanyName FROM Customers”; OleDbCommand myCommand = new OleDbCommand(sQueryString, conn); OleDbDataReader myReader = myCommand.ExecuteReader(); while (myReader.Read()) { Console.WriteLine(myReader.GetString(0)); } myReader.Close(); conn.Close();

ADO.NET Classes System.Data Namespace  Contains the core classes of the ADO.NET architecture  Disconnected DataSet is central  Supports all types of applications  Internet based  ASP.NET  XML  Windows forms based

ADO.NET Classes System.Data Namespace  Contains classes used by or derived from managed providers  IDbConnection, IDbCommand, IDbDataReader

ADO.NET Classes DataSet  A collection of tables  Has no knowledge of the source of the data  Keeps track of all relationships among tables  Rich programming model (has objects for tables, columns, relationships, and so on)  Remembers original and current state of data  Can dynamically modify data and metadata  Native serialization format is XML  Located in System.Data

ADO.NET Classes DataSet DataSet DataTable DataRelation DataRow DataColumn

ADO.NET Classes System.Data.SqlClient Namespace  Managed provider native to SQL Server  Built on TDS (Tabular Data Stream) for high performance in SQL Server  SqlConnection, SqlCommand and SqlDataReader classes  Classes for  Error handling  Connection pooling (implicitly enabled by default )  System.Data.SqlTypes provides classes for native SQL Server data types

ADO.NET Classes IDataAdapter Interface  Populates or sends updates to a DataSet  Implemented by OleDbDataAdapter and SqlDataAdapter  Not connection based  Represents an asynchronous approach  A superset of a command object  Contains four default command objects for Select, Insert, Update, and Delete

ADO.NET Classes DataSet Example string sConnString = “Persist Security Info=False;” + “User ID=sa;Initial Catalog=Northwind;” + “Data Source=MYSERVER”; SqlConnection conn = new SqlConnection(sConnString); conn.Open(); string sQueryString = “SELECT CompanyName FROM Customers”; SqlDataAdapter myDSAdapter = new SqlDataAdapter(); DataSet myDataSet = new DataSet(); myDSAdapter.SelectCommand = new SqlCommand(sQueryString, conn); myDSAdapter.Fill(myDataSet); conn.Close();

ADO.NET Classes DataTable  In-memory object representing one table  Columns  Rows  Schema defined by Columns collection  Data integrity provided through Constraint objects  Public events  Modifying/deleting rows  Modifying columns

ADO.NET Classes DataColumn  Fundamental building block of a DataTable schema (contained in Columns collection)  Defines what type of data may be entered (via DataType property)  Other important properties include AllowNull, Unique, and ReadOnly  Can contain Constraints (a collection on DataTable )  Can contain Relations (collection on DataSet )

ADO.NET Classes DataRow  Represents data in a DataTable (contained in Rows collection)  Conforms to schema defined by DataColumns  Properties for determining row state (e.g., new, changed, deleted, etc.)  All additions/modifications “committed” with AcceptChanges method of DataTable

ADO.NET Classes DataRelation  Relates two DataTables via DataColumns  DataType value of both DataColumns must be identical  Updates can be cascaded to child DataTables  Modifications that invalidate the relation are disallowed

ADO.NET Classes Creating a DataSet in Code  Create DataSet  Define tables DataSet dataset = new DataSet(); dataset.DataSetName = “BookAuthors”; DataTable authors = new DataTable(“Author”); DataTable books = new DataTable(“Book”);

ADO.NET Classes Creating a DataSet in Code  Define columns  Define keys DataColumn id = authors.Columns.Add("ID", typeof(Int32)); id.AutoIncrement = true; authors.PrimaryKey = new DataColumn[] {id}; DataColumn name = new authors.Columns.Add("Name",typeof(String)); DataColumn isbn = books.Columns.Add("ISBN", typeof(String)); books.PrimaryKey = new DataColumn[] {isbn}; DataColumn title = books.Columns.Add("Title", typeof(String)); DataColumn authid = books.Columns.Add(“AuthID”,typeof(Int32)); DataColumn[] foreignkey = new DataColumn[] {authid};

ADO.NET Classes Creating a DataSet in Code  Add the tables to the DataSet dataset.Tables.Add (authors); dataset.Tables.Add (books);

ADO.NET Classes Creating a DataSet in Code  Add data and save the DataSet DataRow shkspr = authors.NewRow(); shkspr["Name"] = "William Shakespeare"; authors.Rows.Add(shkspr); DataRelation bookauth = new DataRelation("BookAuthors", authors.PrimaryKey, foreignkey); dataset.Relations.Add (bookauth); DataRow row = books.NewRow(); row["AuthID"] = shkspr["ID"]; row["ISBN"] = "1000-XYZ"; row["Title"] = "MacBeth"; books.Rows.Add(row); dataset.AcceptChanges();

ADO.NET Classes Typed DataSet s  Typed DataSet  Derived from base DataSet class  Uses XML schema to generate new class  Tables, columns, etc. compiled into new class  Untyped DataSet No built-in schema Tables, columns, etc. exposed only as collections ds.Customers.FirstName ds.Tables[“Customers”].Rows[0][“FirstName”]

ADO.NET Classes Errors and Exceptions  Error class  Contains information on an error or warning returned by data source  Created and managed by Errors class  Errors class  Contains all errors generated by an adapter  Created by Exception class  Exception class  Created whenever an unhandled error occurs  Always contains at least one Error instance

ADO.NET Classes Errors and Exceptions Example try { DataTable myTable = new DataTable(); myTable.Columns.Add(“myCol”); //whoops! } catch (DataException myException) { Console.WriteLine ("Message: " + myException.Message + "\n" + "Source: " + myException.Source + "\n" + “Stack Trace: " + myException.StackTrace + "\n"); }

Conclusion  Database Theory and History  Relational Database Concepts and Terminology  ADO.NET Overview  ADO.NET Classes

Resources  Introducing ADO+   ADO.NET  ide/cpconaccessingdata.htm  ADO+ Guides the Evolution of the Data Species   ADO.NET for the ADO Programmer   ADO Rocks and Rolls in.NET Applications   Meditating on OLE DB and.NET 

Resources  Reading Data Reader Secrets   Database-like Data Containers  sdn/data htm  ADO  ados4piv.htm  Universal Data Access   SQL Server 

Appendix ADO vs. ADO.NET  ADO is a slower automation layer over OLE DB for use in Visual Basic, etc.  ADO.NET provides direct, fast access to data from any language  ADO.NET essentially has merged OLE DB and ADO into a single layer

Appendix ADO vs. ADO.NET FeatureADOADO.NET Memory-resident Data Representation Uses RecordSet, which can contain one table Uses DataSet, which can contain one or more tables represented by DataTables Relationship Between Multiple Tables Require the JOIN querySupports the DataRelation object Data VisitationScans RecordSet rows sequentially Uses a navigation paradigm for non- sequential access Disconnected AccessProvided by RecordSet but typically supports connected access Communicates with standardized calls to the DataAdapter

Appendix ADO vs. ADO.NET FeatureADOADO.NET ProgrammabilityUses Connection object to transmit commands Uses strongly typed programming characteristics of XML Sharing Disconnected Data Between Tiers or Components Uses COM marshalling to transmit disconnected Recordset Transmits a DataSet with an XML file Transmitting Data Through Firewalls Problematic because firewalls are typically configured to prevent system-level requests Supported, DataSet object use XML, which can pass through firewalls ScalabilityDatabase locks and active database connections for long durations Disconnected access to database data without retaining database locks