7-Access and Database 3.ppt

advertisement



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-UpdateDelete) 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

It is a kind of bridge between data source and
DataTable object

Constructors
◦ OleDbDataAdapter()
◦ OleDbDataAdapter(OleDbCommand myCmd)
◦ OleDbDataAdapter(string cmdString, OleDbConnection
mySqlConn)
◦ OleDbDataAdapter(string cmdString, string conn)

Common properties and funtions
◦ Fill()
◦ Update()
Create
adapter
object
Connection
object
Create
DataSet
object
Transfer data
from DB to
DataSet object

DataSet object used as a simple relational inmemory database in C# programs

It uses DataAdapter object to access and
modify data source

Internal structures within a DataSet object
◦
◦
◦
◦
DataSet
DataTable
DataColumn
DataRow
Hierarchically defined
DateSet objects




DataSet object represents the whole DB
It includes tables and the relations between
tables
It is filled by calling Fill() function of the
DataAdapter object.
Common properties and functions
◦ Tables
◦ AcceptChanges()
◦ Clear()

Constructors
◦ DataSet()
◦ DataSet(string dataSetNameString)

Example
◦ DataSet myDataSet = new DataSet();
◦ DataSet myDataSet = new DataSet("myDataSet");
Type of the
DataSet
object
Name of the
DataSet
object
Create a
new DataSet
object

It resides in DataSet object

It has name, columns and rows


Instead of creating a new DataTable, we
usually use the one that is inside a DataSet
object
A DataSet object may have more than one
(multiple) DataTable objects.


DataColumn: It corresponds to a column in a
DB table. It holds name and data type
information.
DataRow: It corresponds to a row in a DB
table. It holds actual data and used in select,
update, insert and delete operations.
Command
DataSet
object
DataAdapter
object
Fill
DataSet
From first
row of first
table of
DataAdapter
Fetch data
using
column
numbers





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
◦ Sets the age value of the records to 18 who are
younger than 18




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
LECTURES
STUDENTS
ID
LC_NAME
KAYA
5
PHYSICS
TAN
6
CHEMISTRY
ID
ST_NAME
ST_SURNAME
1
ALİ
2
VELİ
GRADES
ID
ST_ID
LC_ID
GRADE
1
1
5
50
2
1
6
30
3
2
5
80




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
Download