PV178: Programming for .NET Framework Accessing Relational Databases - - PowerPoint PPT Presentation

pv178 programming for net framework
SMART_READER_LITE
LIVE PREVIEW

PV178: Programming for .NET Framework Accessing Relational Databases - - PowerPoint PPT Presentation

Preliminaries Basic Classes Datasets etc. PV178: Programming for .NET Framework Accessing Relational Databases with ADO.NET Vojt ech Forejt, forejt@fi.muni.cz Martin Osovsk y, osovsky@ics.muni.cz Faculty of Informatics and Institute of


slide-1
SLIDE 1

Preliminaries Basic Classes Datasets etc.

PV178: Programming for .NET Framework

Accessing Relational Databases with ADO.NET Vojtˇ ech Forejt, forejt@fi.muni.cz Martin Osovsk´ y, osovsky@ics.muni.cz

Faculty of Informatics and Institute of Computer Science Masaryk University

March 26, 2009

slide-2
SLIDE 2

Preliminaries Basic Classes Datasets etc.

ADO.NET vs. ADO

ADO.NET is successor of ADO (ActiveX Data Objects) ADO

Works mainly “online” Basic structure is RecordSet representing one table Unsatisfactory abstraction from physical data model Loss of relation between data

ADO.NET

Designed for “offline” work Basic structure is DataSet representing one or more tables and relations between them

slide-3
SLIDE 3

Preliminaries Basic Classes Datasets etc.

Namespaces

System.Data – classes used for data access System.Data.(OleDb|Oracle|Odbc|SqlClient), MySql.Data.MySqlClient. . . for data providers System.Data.SqlTypes, SystemData.Sql – specific classes for Microsoft SQL Server

slide-4
SLIDE 4

Preliminaries Basic Classes Datasets etc. Providers and connections

Classes of data providers

Derived from common base class, implementing common interface E.g. (Sql|Oledb|...|MySql)Connection implement IDbConnection and derive from DbConnection, allow to connect to database

slide-5
SLIDE 5

Preliminaries Basic Classes Datasets etc. Providers and connections

Database Connection

<provider>Connection represent database connection connection is determined by connection string given in constructor or via ConnectionString property

example: “server=pat.fi.muni.cz;user id=mysql;database=maindb”

connection is opened and closed using Open and Close methods.

slide-6
SLIDE 6

Preliminaries Basic Classes Datasets etc. Commands

Database Commands

<provider>Command represent command passed to database (mostly SQL query) properties Connecion and CommandText (may be set in constructor) CommandType property – Text or StoredProcedure (or TableDirect)

slide-7
SLIDE 7

Preliminaries Basic Classes Datasets etc. Commands

Database Commands – Execution

ExecuteNonQuery – executes command and returns number

  • f affected rows

ExecuteScalar – executes and returns one value of type Object ExecuteReader – executes and returns IDataReader

slide-8
SLIDE 8

Preliminaries Basic Classes Datasets etc. Commands

Database Commands – Parameters

property Parameters allows to pass parameters to stored procetude or to include them in SQL queries. every provider has <provider>Parameter class parameter properties

ParameterName – unique in the collection Direction – input/output (for stored procedures) Value DbType, <provider>Type – type of parameter in database, given by DbType and <provider>Type enums.

slide-9
SLIDE 9

Preliminaries Basic Classes Datasets etc. Commands

Example

ElementaryDbExample

slide-10
SLIDE 10

Preliminaries Basic Classes Datasets etc. Transitions

Transactions

used when some changes to database are done together connection’s method BeginTransaction returns <provider>Transaction methods Commit and Rollback command’s Transaction property property IsolationLevel – visibility of changes

slide-11
SLIDE 11

Preliminaries Basic Classes Datasets etc. Transitions

Example

TransactionExample

slide-12
SLIDE 12

Preliminaries Basic Classes Datasets etc. Reader

<provider>DataReader Class

sequential access to data data read row by row, step to next row using Read method two indexers

integer – order of column string – names of column

for common types, one may use Get<type> instead of indexer.

slide-13
SLIDE 13

Preliminaries Basic Classes Datasets etc. Reader

Example

DataReaderExample

slide-14
SLIDE 14

Preliminaries Basic Classes Datasets etc. Overview

ADO.NET and RAD

Rich suport for RAD in Visual Studio Many classes can be generated automatically. WinForms controls can be bound with data in desing time

slide-15
SLIDE 15

Preliminaries Basic Classes Datasets etc. Overview

Overview

DB DataSet DataTable DataColumn DataRow DataRow DataRow D a t a A d a p t e r DataAdapter DataRelation

slide-16
SLIDE 16

Preliminaries Basic Classes Datasets etc. Classes

System.Windows.Forms.BindingSource Class

Provides a data source for a form Binds data sources with controls using their DataBindings property Supports quite complex operations with data (sorting, filtering)

slide-17
SLIDE 17

Preliminaries Basic Classes Datasets etc. Classes

DataSet Class

Class representing online data container Not dependent on database, may e.g. store XML data Contains objects for tables, their columns, row and relations. Each of object represented by separate class (DataTable, DataRow,...)

slide-18
SLIDE 18

Preliminaries Basic Classes Datasets etc. Classes

DataTable Class

  • bject representing table containing data

contains collection of DataColumns may contain one or more DataRows may contain constraints on columns and primary key information

slide-19
SLIDE 19

Preliminaries Basic Classes Datasets etc. Classes

DataColumn Class

identified by name properties

ColumnName AutoIncrement – automatic generation of numeric value DataType – one of several .NET types (int, double, TimeSpan, String. . . ), cannot be changed after table is filled with data DefaultValue

slide-20
SLIDE 20

Preliminaries Basic Classes Datasets etc. Classes

DataRow

class representing data in dable editing is started using BeginEdit, ended using EndEdit or

  • CancelEdit. In between, constraint control is suspended

data are stored “offline”, thus must be versioned

Original – value retrieved from external source Current – last “valid” value assigned Proposed – last (potentionally “invalid”) value assigned between calling BeginEdit and EndEdit or CancelEdit Default

slide-21
SLIDE 21

Preliminaries Basic Classes Datasets etc. Classes

DataRow cont.

(six) indexers, one or two parameters

first parameter is either DataColumn, int or String second (optional) parameter is DataRowVersion.

RowState property

Added, Deleted, Detached, Modified, Unchanged

AcceptChanges method changes RowState to Unchanged and version to Original.

slide-22
SLIDE 22

Preliminaries Basic Classes Datasets etc. Classes

Example

DataTableExample.cs

slide-23
SLIDE 23

Preliminaries Basic Classes Datasets etc. Classes

DataRelation

Adds a named relation between two collection of columns in two tables of dataset foreign-key – primary-key methods GetChildRows and GetParentRows of DataRow may be used to navigate using these relations.

slide-24
SLIDE 24

Preliminaries Basic Classes Datasets etc. Classes

Constraints

Constraints on values in columns represented using objects

UniqueConstraint – every value in column must be unique ForeignKeyConstraint – restriction on two (collections of) columns.

applied only if DataSet’s EnforceConstraint property is true

slide-25
SLIDE 25

Preliminaries Basic Classes Datasets etc. Classes

Constraints cont.

property (Update|Delete)Rule for rules of updates and deletion of rows

Cascade – changes all child rows None SetDefault – child columns with FK that does not exist get default value SetNull

slide-26
SLIDE 26

Preliminaries Basic Classes Datasets etc. Classes

DataSet Schemas

may be generated in 3 ways

automatically from data source manually in code from XML schema

slide-27
SLIDE 27

Preliminaries Basic Classes Datasets etc. Classes

Filling DataSet

after setting DataSet schema, it is filled with data

using <provider>DataAdapter from XML file manually by adding and editing rows

slide-28
SLIDE 28

Preliminaries Basic Classes Datasets etc. Classes

DataAdapter class

provides connection between DataSet and databese properties SelectCommand, UpdateCommand, InsertCommand, DeleteCommand methods

Fill – uses SelectCommand to fill dataset from database. Update – calls the other three commands so that data are stored to the database.