Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object...

36
Introduction to ADO.NET
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    230
  • download

    0

Transcript of Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object...

Page 1: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Introduction to ADO.NET

Page 2: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

ADO.NET Objects

Data Set

.NET Applications

Data Reader

Command Object

Connection Object

Managed Data Provider(OLEDB)

Database

Page 3: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Connection with a Connection Object

• A connection object represents a unique session with a data source.

• Connection string: database, OLE DB provider, password, if any, security, etc.

• Use the Open/Close method to open/close a connection.

• Manage transaction: BeginTransaction(), Commit, rollBack.

Page 4: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Connection String

• Containing information about database, OLE DB provider, password, if any, security, etc.

• For Jet database:– Provider=Microsoft.Jet.OLEDB.4.0;Persist

Security info = False;Data Source=c:\ …\Nwind.mdb

Page 5: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Data Link Properties

• Access permissions – Read—Read only.– ReadWrite—Read and write.– Share Deny None—Neither read nor write access can

be denied to others.– Share Deny Read—Prevents others from opening in

read mode.– Share Deny Write—Prevents others from opening in

write mode.– Share Exclusive—Prevents others from opening in

read/write mode. – Write—Write only.

Page 6: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Providers

• MSDASQL – Microsoft OLE DB Provider for ODBC

• Microsoft.Jet.OLEDB.3.51

• Microsoft.Jet.OLEDB.4.0

• MSDAORA – For Oracle

• SQLOLEDB – Microsoft SQL Server

Page 7: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Connection Object

• Example:– dim strConn as string ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\

sales2k.mdb"

– dim objConn as new OledbConnection(strConn)

– objConn.open()

• Basic Methods:– Open, Close

– BeginTransaction

Page 8: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Command Object

• The command object allows us to execute a SQL statement.

• Properties:– CommandType: SQL or stored procedure– CommandText: SQL statement– Connection

• Basic Methods:– ExecuteReader: Creates a DataReader object that contains

the results of the query.– ExecuteNonQuery: Execute SQL’s INSERT, DELETE,

UPDATE statements.

Page 9: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

ExecuteReader Example

dim strConn as string ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\sales2k.mdb"

dim objConn as new OledbConnection(strConn)

dim strSQL as string = "select * from customer;"

dim objComm as new OledbCommand(strSQL,objConn)

dim Results as string

objConn.open()

dim objDataReader as oledbDataReader

objDataReader=objComm.executeReader()

Page 10: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

DataReader Object

• It is read-only and forward-only cursor.

• Basic Methods:– Read: Reads the current record and advances

the pointer to the next record.– Close: Closes the dataReader.

Page 11: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Read Records in a DataReader

• dim Results as string• do while objDataReader.Read()=true

Results+=objDataReader("cid") + “ “ + objDataReader("Cname") + vbCrLF

• loop• Textbox1.text=Results

Page 12: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Add Items from a DataReader to a Listbox

Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\sales2k.mdb"

Dim objConn As New OleDbConnection(strConn)

Dim strSQL As String = "select cname from customer;"

Dim objComm As New OleDbCommand(strSQL, objConn)

objConn.Open()

Dim objDataReader As OleDbDataReader

objDataReader = objComm.ExecuteReader()

Do While objDataReader.Read() = True

LISTBOX1.Items.Add(objDataReader("cname"))

Loop

Page 13: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

ExecuteNonQuery Example

dim strSQLUpd as string="Update customer set rating = ‘A’”

strSQLUpd=strSQLUpd & " where cname='" & CnameList.selectedItem.text & "'“Dim objCommUpd As New OleDbCommand(strSQLUpd, objConn)

objCommUpd.ExecuteNonQuery()

Page 14: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Demo

• Create a project that do the following tasks:– Use a DataReader to retrieve customer IDs and

populate a listbox.– Select a new rating from radio buttons for the

selected customer.– Update customer’s rating using the

ExecuteNonQuery method of a Command object.

Page 15: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Declare OleDB objects and create listboxImports System.Data.OleDb

Public Class Form3

Inherits System.Windows.Forms.Form

Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\sales2k.mdb"

Dim objConn As New OleDbConnection(strConn)

Dim strSQL As String = "select cid from customer;"

Dim objComm As New OleDbCommand(strSQL, objConn)

Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

objConn.Open()

Dim objDataReader As OleDbDataReader

objDataReader = objComm.ExecuteReader()

Do While objDataReader.Read() = True

ListBox1.Items.Add(objDataReader("cid"))

Loop

objConn.Close()

End Sub

Page 16: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Update customer ratingPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

objConn.Open()

Dim newRating As String

If RadioButton1.Checked = True Then

newRating = "A"

ElseIf RadioButton2.Checked Then

newRating = "B"

Else

newRating = "C"

End If

Dim strSQLUpd As String = "Update customer set rating = '" & newRating & "'"

strSQLUpd = strSQLUpd & " where cid='" & ListBox1.SelectedItem & "'"

Dim objCommUpd As New OleDbCommand(strSQLUpd, objConn)

objCommUpd.ExecuteNonQuery()

objConn.Close()

End Sub

Page 17: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Use Command Object’s ExecuteNonQuery to Insert A New Record

1. Create unbound text boxes to enter new record.

2. Add an Insert button with the following handler

Dim strSQLInsert As String

strSQLInsert = "Insert into Customer values ('"

strSQLInsert = strSQLInsert & TextBox1.Text & "','" & TextBox2.Text & "','"

strSQLInsert = strSQLInsert & TextBox3.Text & "','" & TextBox4.Text & "')"

Dim objCommInsert As New OleDbCommand(strSQLInsert, objConn)

objCommInsert.ExecuteNonQuery()

Page 18: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

DataSet Object

• A DataSet object can hold several tables and relationships between tables.

• A DataSet is a set of disconnedted data. Data is extracted from the database and stored in the DataSet object. Updates to the DataSet must copy back to the database to make the changes permanent.

Page 19: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

DataSet and Related Objects• DataSet: Can contain multiple tables and

relationships.• DataTable object: Represents a table in the

dataset.• DataAdapter: This the object used to pass data

between the database and the dataset. The Fill method copies the data into the dataset, and the Update method copies the updates back into the database.

• DataView: This represents a specific view of the DataTables held in the dataset.

Page 20: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

DataSet and Related Objects

DataView

DataSetDataTable

DataTable

DataAdapter

Connection

Command

Page 21: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Reading Data into a Table

• dim strConn as string ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\sales2k.mdb"

• dim objConn as new OledbConnection(strConn)

• dim strSQL as string = "select * from customer;"

• dim objDataSet as new Dataset()

• dim objAdapter as new OledbDataAdapter(strSQL, objConn)

• objAdapter.Fill(objDataSet, "Cust")

Page 22: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Binding a Table in a Dataset to a DataGrid

Imports System.Data.OleDb

Public Class Form4

Inherits System.Windows.Forms.Form

Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\sales2k.mdb"

Dim objConn As New OleDbConnection(strConn)

Dim objDataSet As New DataSet()

Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim strSQL As String = "select * from customer;"

Dim objAdapter As New OleDbDataAdapter(strSQL, objConn)

objAdapter.Fill(objDataSet, "Cust")

DataGrid1.DataSource = objDataSet

DataGrid1.DataMember = "Cust"

End Sub

Page 23: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

DataView Object

• The DataView object exposes a complete table or a subset of the records from a table.– Dim ObjDataView As New DataView()– ObjDataView.Table = objDataSet.Tables("Cust")

• Properties:– RowFilter– objDataView.rowfilter="rating='" & Ratinglist.SelectedItem.Text

& "'“

• DataView can be used as a DataSource in data binding.

Page 24: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

DataView ExampleDim ObjDataView As New DataView()

Dim newRating As String

If RadioButton1.Checked = True Then

newRating = "A"

ElseIf RadioButton2.Checked Then

newRating = "B"

Else

newRating = "C"

End If

ObjDataView.Table = objDataSet.Tables("Cust")

ObjDataView.RowFilter = "rating='" & newRating & "'"

DataGrid1.Visible = True

DataGrid1.DataSource = ObjDataView

Page 25: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Defining an Adapter without A Command Object

• dim strConn as string ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\sales2k.mdb"

• dim objConn as new OledbConnection(strConn)• dim strSQL as string = "select * from

customer;"• dim objDataSet as new Dataset()• dim objAdapter as new OledbDataAdapter(strSQL,

objConn)• objAdapter.Fill(objDataSet, "Cust")

Page 26: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Defining an Adapter with A Command Object

• dim strSQLCust as string = "select * from customer;"

• dim objComm as new OledbCommand()

• dim objAdapter as new OledbDataAdapter()

• dim objDataSet as new Dataset()

• objComm.Connection=objConn

• objComm.CommandType=COmmandType.Text

• objComm.CommandText=strSQLCust

• objAdapter.SelectCommand=objComm

• objConn.open()

• objAdapter.Fill(objDataSet, "Customer")

• Note:Adapter has SelectCommand, InsertCommand, DeleteCommand, UpdateCommand properties (Check Object Browser).

Page 27: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Creating Multiple Tables in A DataSet• dim strSQLCust as string = "select * from

customer;"• dim strSQLOrder as string ="select * from

orders;"• dim objComm as new OledbCommand()• dim objAdapter as new OledbDataAdapter()• dim objDataSet as new Dataset()• objComm.Connection=objConn• objComm.CommandType=COmmandType.Text• objComm.CommandText=strSQLCust• objAdapter.SelectCommand=objComm• objConn.open()• objAdapter.Fill(objDataSet, "Customer")• objComm.COmmandText=strSQLOrder• objAdapter.Fill(objDataSet, "Orders")

Page 28: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Adding Relationship to a Dataset

• The Dataset object has a Relations property. It is a collection of DataRelations. We can use a relationship to enforce the referential integrity.

• To define a DataRelation:– DataRelObj=DataRelation(RelationName,

ParentTable Field, ChildTableField)• objRel = New DataRelation("custOrder",

objDataset.tables("customer").columns("cid"), objDataset.tables("orders").columns("cid"))

Page 29: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

DataTable’s Rows Property

• This is a collection of all the records in a table, a collection of DataRow objects.

• The DataRow object has a GetChildRows method that returns a collection of rows from another table that are related as child rows to this row.

Page 30: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Access Rows in a DataRow Collection

• dim objTable as DataTable = objDataset.Tables("Customer")

• dim objRow as DataRow• For each objRow in objTable.Rows• strResult=strResult+“ " & objRow("cid") &

" " & objRow("cname") & vbCrLf

• Next

Page 31: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Displaying Parent/Child Records in a Relation

• Define the relation.

• Specify the relation in the GetChildRows method of the DataRow object.

Page 32: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Imports System.Data.OleDb

Public Class Form1

Inherits System.Windows.Forms.Form

Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\sales2k.mdb"

Dim objConn As New OledbConnection(strConn)

Dim strSQLCust As String = "select * from customer;"

Dim strSQLOrder As String = "select * from orders;"

Dim objComm As New OledbCommand()

Dim objAdapter As New OledbDataAdapter()

Dim objDataSet As New DataSet()

Dim objRel As DataRelation

Dim strResult As String

Dim rowIndex As Integer = 0

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

objComm.Connection = objConn

objComm.CommandType = CommandType.Text

objComm.CommandText = strSQLCust

objAdapter.SelectCommand = objComm

objConn.Open()

objAdapter.Fill(objDataSet, "Customer")

objComm.CommandText = strSQLOrder

objAdapter.Fill(objDataSet, "Orders")

objRel = New DataRelation("custOrder", objDataSet.Tables("Customer").Columns("cid"), objDataSet.Tables("Orders").Columns("cid"))

objDataSet.Relations.Add(objRel)

Call showChild(rowIndex)

End Sub

Page 33: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Private Sub showChild(ByVal RowIndex)

TextBox1.Text = objDataSet.Tables("customer").Rows(RowIndex).Item("cid")

TextBox1.Text = objDataSet.Tables("customer").Rows(RowIndex).Item("cname")

Dim objOrderRel As DataRelation = objDataSet.Tables("customer").ChildRelations("custOrder")

Dim strResult As String

Dim objChildRow As DataRow

For Each objChildRow In objDataSet.Tables("customer").Rows(RowIndex).GetChildRows(objOrderRel)

strResult = strResult + objChildRow("oid") + " " + objChildRow("odate") + vbCrLf

Next

TextBox3.Text = strResult

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

rowIndex += 1

Call showChild(rowIndex)

End Sub

Page 34: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Display Child Records in Grid

• This technique uses the fact that the DataView of a table can be used as a DataSource in binding a data grid.

• Assuming a Customer/Orders relationship, for each customer record:– Use Table object’s Clone method to create a temporary

child table structure.– Use Table object’s ImportRow method to import child

records to the clone table.– Use the clone table’s Dataview to bind the DataGrid.

Page 35: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Dim objRow As DataRow

Dim drFound As DataRow

drFound = objDataSet.Tables("Customer").Rows("0")

TextBox1.Text = drFound.Item("cid")

TextBox2.Text = drFound.Item("cname")

Dim childTable As DataTable

childTable = objDataSet.Tables("orders").Clone

For Each objRow In drFound.GetChildRows(objOrderRel)

childTable.ImportRow(objRow)

Next

DataGrid1.DataSource = childTable.DefaultView

Page 36: Introduction to ADO.NET. ADO.NET Objects Data Set.NET Applications Data Reader Command Object Connection Object Managed Data Provider (OLEDB) Database.

Multiple Forms: Where to import the oledb, and where to create the oledb objects

Imports System.Data.OleDbModule Module1 Public strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\sales2k.mdb" Public objConn As New OleDbConnection(strConn) Public strSQLCust As String = "select * from customer;" Public strSQLOrder As String = "select * from orders;" Public objComm As New OleDbCommand() Public objAdapter As New OleDbDataAdapter() Public objDataSet As New DataSet() Public objRel As DataRelation Public strResult As String Public rowIndex As Integer = 0 Public ObjDataView As New DataView() Public Sub main() objComm.Connection = objConn objComm.CommandType = CommandType.Text objComm.CommandText = strSQLCust objAdapter.SelectCommand = objComm objConn.Open() objAdapter.Fill(objDataSet, "Customer") objComm.CommandText = strSQLOrder objAdapter.Fill(objDataSet, "Orders") End SubEnd Module