it is the primary data access model for.net applications next version of ado can be divided into...

Post on 02-Jan-2016

216 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 namespace

It enables connection to the data source

Each data source has it’s own connection provider

Common data access objects◦ Connection◦ Command◦ Parameter◦ DataAdapter◦ DataReader

It provides the connection that is used for accessing data source

Common types◦ OleDbConnection◦ OdbcConnection◦ SqlConnection

Object Linking and Embedding Database

It aims to access to specific set of data sources from .Net applications

Continuous access to data source even path of the source is changes.

Odbc vs OleDb

System.Data.OleDb

Commonly used properties and functions

◦ ConnectionString◦ ConnectionTimeout◦ BeginTransaction()◦ Close()◦ CreateCommand()◦ Open()

To add a connection object to the form, just drag and drop an OleDbConnection from the toolbox

Use ConnectionString property in to Properties Window to set connection information.

DataLink properties window will be opened when you ConnectionString property click

From the first tab select the type of data provider

To define a connection to an access database, you should select Microsoft Jet 4.0 OLE Db Provider

It performs CRUD (Create-Read-Update-Delete) operations on the database.

Common Types◦ OdbcCommand◦ OleDbCommand◦ SqlCommand

It uses OleDb framework

Common properties and functions

◦ CommandText◦ Connection◦ Parameters◦ Transaction◦ ExecuteNonQuery()◦ ExecuteReader()

Constructors

◦ OleDbCommand()

◦ OleDbCommand(string cmdText)

◦ OleDbCommand(string cmdText, OleDbConnection myoledbConn)

◦ OleDbCommand(string cmdText, OleDbConnection myoledbConn, OleDbTransaction myoledbtrans)

Type of the object

Name of the object

Connection object

The SQL command that

will be run

It provides a data parameter to command object

Usage;◦ First crate a command object with an SQL

statement which contains special characters for placing parameters.

◦ Add parameters to the command object with assigning values

◦ Execute the command object

Adding parameters

Type of the parameter

Length of the parameter

Assigning values to the parameter

Used for retrieving data from datasource without modifying the actual data (works readonly)

Common types◦ OdbcDataReader◦ OleDbDataReader◦ SqlDataReader◦ OracleDataReader◦ Db2DataReader

It has no public constructor. So, to crate a DataReader object you should call ExecuteReader() function of the releates command object.◦ OleDbDataReader ordr = ocmd.ExecuteReader();

When Read() fucntion is called, DateReader object starts to read data or moves to next record.◦ if(ordr.Read())◦ while(ordr.Read())

To access actual data one should use indexes or Get functions of the reader◦ ordr[0].ToString();◦ ordr[“NameOfTheColumn”].ToString()◦ ordr.GetString(0);

If you plan to continue to use Connection object (e.g. to execute another SQL statement), then you should call Close() function of the reader object.◦ ordr.Close();

Common properties and functions◦ IsClosed◦ FieldCount◦ GetInt32(), GetDecimal(), GetString() ......◦ IsDBNull()◦ Read()◦ Close

Reader object

If there is data to be

read

Create reader object by

executing the command

Fetch the data by providing the column

number on the current row

Reader object

If there is data to be

read

Create reader object by

executing the command

Fetch the data by providing the column

name on the current row

Filter a set of data Eleminates row mismathcing rows, passes

matching ones. If a select sql is executed without a where

keyword, then all rows in tables that are used in select sql will be returned.

It needs columns in order to be used Pay importance to data types while using

where keyword.

SELECT * FROM PERSONEL WHERE ADI = ‘ALİ’◦ This query will return all rows in table PERSONEL whose name are

equal to ALİ◦ where keyword should be used after table name◦ After then we should write filter statements

SELECT * FROM PERSONEL WHERE ADI LIKE ‘AL%’◦ This query will return all rows in table PERSONEL whose name

starts with AL◦ LIKE keyword is used to search for specified patterns in a column.

SELECT * FROM PERSONEL WHERE ADI = ‘ALİ’ AND SOYADI = ‘KAYA’◦ Where keyword may include multiple filtering statements◦ The sql query seen above will return the rows with name equals

ALİ and surname equals KAYA

It is used for erasing records from table

Generally used with where keyword

It is an irreversible operation (unless used within a transaction), so use it very carefully.

To execute a delete sql, first put it in to a command object, then call ExecuteNonQuery function.

DELETE FROM PERSONEL◦ Deletes all rows (records) in table PERSONEL

DELETE FROM PERSONEL WHERE AGE < 18◦ Deletes rows in table PERSONEL who are younger

then 18

DELETE FROM PERSONEL WHERE ADI LIKE ‘AL%’◦ Deletes rows in table PERSONEL whose names

starts with AL

It is used for changing values in a tables More effective then delete->insert Usually used with where keyword User should supply column names that will

be updated To execute a update sql, first put it in to a

command object, then call ExecuteNonQuery function.

UPDATE PERSONEL SET ADI = ‘ALİ’◦ Changes all names to ALİ in table PERSONEL

UPDATE PERSONEL SET YAS = 18 WHERE YAS < 18 AND SOYAD = ‘KAYA’◦ Sets the age value of the records to 18 who are

younger than 18 and surname is KAYA

This operation is called JOIN operation It combines desired columns from multiple

tables in to one data set. Usually one column of a table is matched to

anoter related column in other table If two tables have column with same name,

then we should write table names before column names to get over confusion

ID ST_NAME

ST_SURNAME

1 ALİ KAYA

2 VELİ TAN

ID LC_NAME

5 PHYSICS

6 CHEMISTRY

ID ST_ID LC_ID GRADE

1 1 5 50

2 1 6 30

3 2 5 80

STUDENTS LECTURES

GRADES

Id, name and surnames are stored in STUDENT table

Id and lecture names are stored in LECTURES table

In grades table we store the scores of students in courses

How to find the score of a student in a specified lecture.

Answer: We have to combine (join) three tables.

How?◦ Pick the id of the student from STUDENTS table◦ Pick the lecture information from LECTURES table◦ Pick the lectures that student attends from

GRADES table◦ Fetch grades of students from desired lessons

from GRADES table

Joining

◦ Join STUDENTS (ID) with GRADES(ST_ID)

◦ Join LECTURED(ID) with GRADES(LC_ID)

To select student name, surname, attended lectures and grades we should write the following SQL query

SELECT ST_NAME, ST_SURNAME, LC_NAME, GRADE FROM STUDENTS, GRADES, LECTURES

WHERE STUDENTS.ID = GRADES.ST_ID AND LECTURES.ID = GRADES. LC_ID

top related