Unit4
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
501
On Slideshare
501
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
6
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 1 | P a g e 030010401- GUI Programming Unit-4: ADO.NET Programming BCA 4th Semester Note: - This material is prepared by Ms. Preeti P Bhatt. The basic objective of this material is to supplement teaching and discussion in the classroom. Student is required to go for extra reading in the subject through library work.
  • 2. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 2 | P a g e Topic Covered  ADO.NET architecture and its component  Connected and disconnected architecture  Working with the DataSet: creating, filling and modifying DataSet, DataGrid control  Accessing data: Executing query using Command object, reading data using DataReader  Executing stored procedure
  • 3. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 3 | P a g e ADO.NET ADO.NET is a data access technology from Microsoft .Net Framework , which provides communication between relational and non-relational systems through a common set of components. ADO.NET consists of a set of Objects that expose data access services to the .NET environment. ADO.NET is built for disconnected architecture, so it enables truly disconnected Data Access and Data Manipulation through its Dataset Object, which is completely independent from the Data Source. ADO.NET provides • Methods for connecting to data sources • Retrieving • Manipulating • Updating. ADO.NET Architecture
  • 4. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 4 | P a g e Two Main Component of ADO.Net 1. Data Provider The Data Provider is responsible for providing and maintaining the connection to the database. Data Provider is a set of ADO.NET classes that allows you to access specific database, execute SQL command and retrieve the data. A data provider is a bridge between your application and a data source. Four Data Providers for ADO.NET  OLEDB Provider: (Object Linking and Embedding Database) o Provides access to any data source that has OLEDB driver.(like Access ) o Namespace : OleDb  Members provide a direct connection to COM(Component Object Model)-based OLE DB data providers for databases and data sources other than SQL Server and Oracle.  ODBC Provider: (Open Database Connectivity) o Provides access to any data source that has an ODBC driver. o Namespace : ODBC  Members provide connectivity to legacy data sources that don’t have OLE DB data providers.  SQLServer Provider: provides access to SQL server database o Namespace : SqlClient  Members provide high performance connectivity to SQL Server.  Oracle Provider: provides access to Oracle database. o Namespace : SqlClient  Members deliver functionality similar to SqlClient for Oracle databases. How to Import Namespace? Sql Example Imports System.Data ‘For dataset object Imports System.Data.SQLClient ‘For data provider object
  • 5. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 5 | P a g e Object of data provider The four Objects from the .Net Framework provide the functionality of Data Providers in ADO.NET.  Connection Object  Command  Data Reader  Data Adapter Connection Connection class allows you to establish a connection to data source. The connection string is a series of name/value setting separate by semicolon (;) The few information required in connection string are  Server where database is located  Database you want to use  Database should authenticate you Connections can be opened in two ways:  Explicitly by calling the Open method on the connection  Implicitly when using a DataAdapter. When creating a connection object you can pass the connection string as a constructor parameter. You can also set the ConnectionString property by hand. Ex: connection with SqlClient  Without argument constructor Dim connection as new SqlConnection() connection.ConnectionString= “Connection String"  With Argument constructor Dim connection As SqlConnection Connection = New SqlConnection ("Connection String") Common properties and methods Method/Property Use Open() open the connection Close() Close the connection() ConnectionString The string use to make connection with database
  • 6. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 6 | P a g e Command The command class allows you to execute any type of SQL Command. You can also use command class to perform user defined task such as create table, alter table etc. Example: Dim cnn As SqlConnection Dim cmd As SqlCommand cnn = New SqlConnection(“ConnectionString”) cmd = New SqlCommand("Your SQL Statement Here", cnn) Property of Command Object o Connection o CommandType o CommandText o Parameters Methods for execute commands on the database: ● ExecuteNonQuery: Executes commands that have no return values such as INSERT, UPDATE or DELETE ● ExecuteScalar: Returns a single value from a database query. ● ExecuteReader: Returns a result set by way of a DataReader object. Data Reader DataReader Object in ADO.NET is a stream-based, forward-only, read-only retrieval of query results from the Data Source, which do not update the data. The DataReader cannot be created directly from code; they created only by calling the ExecuteReader method of a Command Object. Dim cmd As SqlCommand(“Query”, con) Dim DataReader As new SqlDataReader DataReader = Command.ExecuteReader() Common methods of DataReader o Read() : It is used to read the rows from DataReader and it always moves forward to a new valid row, if any row exist . o Close() : it used to close dataReader connection with database.
  • 7. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 7 | P a g e Data Adapter DataAdapter is a part of the ADO.NET Data Provider. DataAdapter provides the communication between the Dataset and the Datasource. We can use the DataAdapter in combination with the DataSet Object. That is these two objects combine to enable both data access and data manipulation capabilities. The DataAdapter can perform Select, Insert, Update and Delete SQL operations in the Data Source. The Insert, Update and Delete SQL operations, we are using the continuation of the Select command perform by the DataAdapter. That is the DataAdapter uses the Select statements to fill a DataSet and use the other three SQL commands (Insert, Update, delete) to transmit changes back to the Database. Example: Using Command Object Dim sqlCmd As SqlCommand Dim adapter As SqlDataAdapter Dim ds As New DataSet sqlCmd = New SqlCommand(“Your Select Query”, sqlCnn) adapter = New SqlDataAdapter(cmd) adapter.Fill(ds) Example: Without using Command Object Dim adapter As SqlDataAdapter Dim ds As New DataSet adapter = New SqlDataAdapter(“Your Select Query”, sqlCnn) adapter.Fill(ds) Methods of DataAdapter  Fill()  FillSchema()  Update()
  • 8. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 8 | P a g e 2. DataSet : Second component of ADO.Net The DataSet is the heart of disconnected data access. The ADO.NET DataSet contains DataTableCollection and their DataRelationCollection . It represents a collection of data retrieved from the Data Source. We can use Dataset in combination with DataAdapter class. The DataSet object offers disconnected data source architecture. The Dataset can work with the data it contains, without knowing the source of the data coming from. That is, the Dataset can work with a disconnected mode from its Data Source. It gives a better advantage over DataReader , because the DataReader is working only with the connection oriented Data Sources. Example Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim connetionString As String Dim connection As SqlConnection Dim command As SqlCommand Dim adapter As New SqlDataAdapter Dim ds As New DataSet Dim i As Integer Dim sql As String connetionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password" sql = "Your SQL Statement Here" connection = New SqlConnection(connetionString)
  • 9. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 9 | P a g e Try connection.Open() command = New SqlCommand(sql, connection) adapter.SelectCommand = command adapter.Fill(ds) adapter.Dispose() command.Dispose() connection.Close() For i = 0 To ds.Tables(0).Rows.Count - 1 MsgBox(ds.Tables(0).Rows(i).Item(0) & " -- " & ds.Tables(0).Rows(i).Item(1)) Next Catch ex As Exception MsgBox("Cannot open connection ! ") End Try End Sub End Class Connected and Disconnected Architecture The ADO.NET Framework supports two models of Data Access Architecture,  Connection Oriented Data Access Architecture  Disconnected Data Access Architecture. Connection Oriented Data Access In Connection Oriented Data Access Architecture the application makes a connection to the Data Source and then interacts with it through SQL requests using the same connection. In these cases the application stays connected to the database system even when it is not using any Database Operations. Connected Environment (Scenario) 1. Open connection 2. Execute command 3. Process rows in reader 4. Close reader 5. Close connection Working with data directly via open connection Advantages Drawbacks  Simple security realization  Work with real data  Simple organization of distributed work  Continual connection  Not available via Internet
  • 10. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 10 | P a g e Disconnection Oriented Data Access ADO.Net solves connection problem by introduces a new component called Dataset. The DataSet is the central component in the ADO.NET Disconnected Data Access Architecture. A DataSet is an in-memory data store that can hold multiple tables at the same time. Datasets only hold data and do not interact with a Data Source. Disconnected Environment (Scenario) 1. Open connection 2. Fill the DataSet 3. Close connection 4. Process the DataSet 5. Open connection 6. Update the data source 7. Close connection Accessing data: Executing query using Command object, reading data using DataReader  Executing query using Command object  Insert  Update  Delete  Select  Reading data using DataReader  While select query is used Example: Executing Query using command Object and DataSet
  • 11. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 11 | P a g e Imports System.Data.SqlClient Public Class Form1 Dim con As New SqlConnection("Data Source=.SQLEXPRESS;AttachDbFilename= D:DotNetProgramming 2013VB.NetProgramDemoSQLConnectivitySQLConnectivity EMP.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True") Dim cmd As New SqlCommand() Dim ad As New SqlDataAdapter() Dim ds As New DataSet Dim i As Integer ‘Code For Insert Query Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click Try con.Open() cmd = New SqlCommand("insert into emp_info values (@id,@name,@desg,@salary)",con) cmd.Parameters.AddWithValue("@id", Convert.ToInt32(txtId.Text)) cmd.Parameters.AddWithValue("@name", txtName.Text) cmd.Parameters.AddWithValue("@desg", cbDsgn.SelectedItem) cmd.Parameters.AddWithValue("@salary", Convert.ToInt32(txtSal.Text)) i = cmd.ExecuteNonQuery() MsgBox("Data Inserted") display() Catch ex As Exception MsgBox(ex.Message) End Try con.Close() End Sub ‘Code For Delete Query Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click Try con.Open() cmd = New SqlCommand("delete from emp_info where id=@id", con) cmd.Parameters.AddWithValue("@id", Convert.ToInt32(txtId.Text)) i = cmd.ExecuteNonQuery() MsgBox("Data deleted") display() Catch ex As Exception MsgBox(ex.Message) End Try con.Close() End Sub
  • 12. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 12 | P a g e Public Sub display() ds.Clear() ad = New SqlDataAdapter("select * from emp_info ", con) ad.Fill(ds, "Temp") dataGrid.DataSource = ds dataGrid.DataMember = "Temp" End Sub ‘Code For Select Query Private Sub btnSelect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelect.Click con.Open() display() con.Close() End Sub ‘Code For Update Query Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click Try con.Open() cmd = New SqlCommand("update emp_info set name=@name, designation=@desg, salary=@salary where id=@id", con) cmd.Parameters.AddWithValue("@id", Convert.ToInt32(txtId.Text)) cmd.Parameters.AddWithValue("@name", txtName.Text) cmd.Parameters.AddWithValue("@desg", cbDsgn.SelectedItem) cmd.Parameters.AddWithValue("@salary", Convert.ToInt32(txtSal.Text)) i = cmd.ExecuteNonQuery() MsgBox("Data Updated") display() Catch ex As Exception MsgBox(ex.Message) End Try con.Close() End Sub ‘Code For cell selection in gridview Private Sub dataGrid_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dataGrid.CellClick Dim r As Integer r = dataGrid.CurrentCell.RowIndex txtId.Text = dataGrid.Rows(r).Cells(0).Value txtName.Text = dataGrid.Rows(r).Cells(1).Value cbDsgn.SelectedItem = dataGrid.Rows(r).Cells(2).Value txtSal.Text = dataGrid.Rows(r).Cells(3).Value End Sub
  • 13. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 13 | P a g e ‘Code For Select Query Sub Navigate() Dim r As Integer r = Me.BindingContext(ds, "Temp").Position txtId.Text = dataGrid.Rows(r).Cells(0).Value txtName.Text = dataGrid.Rows(r).Cells(1).Value cbDsgn.SelectedItem = dataGrid.Rows(r).Cells(2).Value txtSal.Text = dataGrid.Rows(r).Cells(3).Value End Sub Private Sub btnCurrent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCurrent.Click Navigate() End Sub Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLast.Click Me.BindingContext(ds, "Temp").Position = Me.BindingContext(ds, "Temp").Count - 1 Navigate() End Sub Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click Me.BindingContext(ds, "Temp").Position = Me.BindingContext(ds, "Temp").Position + 1 Navigate() End Sub Private Sub btnPrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrevious.Click Me.BindingContext(ds, "Temp").Position = Me.BindingContext(ds, "Temp").Position - 1 Navigate() End Sub Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click Me.BindingContext(ds, "Temp").Position = 0 Navigate() End Sub End Class
  • 14. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 14 | P a g e Example: Reading data using DataReader DataGrid Control The DataGridView can display data in  Bound mode – Static Binding- Directly from Gridview  Bound mode is suitable for managing data using automatic interaction with the data store.  One very common use of the DataGridView control is binding to a table in a database.  Unbound mode – Dynamic Binding (Using Code)  Unbound mode is suitable for displaying relatively small amounts of data that you manage programmatically. To bind GridView we can use two properties  DataSource— It gets or sets DataSource that the DataGridView is displaying data.  The data source, typically a dataset  DataMember— It get or set the name of the table in the DataSource for which the DataGridView is display data. Example: DataGridView1.DataSource = dataset Object DataGridView1.DataMember = “Student" Dim con As New SqlConnection("Data Source=.SQLEXPRESS;AttachDbFilename=D: DotNetProgramming 2013VB.NetProgram DemoSQLConnectivitySQLConnectivityEMP.mdf; Integrated Security=True;Connect Timeout=30;User Instance=True") Dim cmd As New SqlCommand() Dim dr As SqlDataReader cmd = New SqlCommand("select * from emp_info ", con) dr = cmd.ExecuteReader() While dr.Read() MsgBox(dr(0) & " , " & dr(1) & " , " & dr(2) & " , " & dr(3)) End While dr.Close() con.Close()
  • 15. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 15 | P a g e Working with the Dataset:  Dataset is a disconnected, in-memory representation of the data.  It can be consider as local copy of portion of database.  It can be manipulated and updated independent of the database.  Creating, filling and modifying DataSet o Create object of dataset o Create DataTable object o Create DataColumn object o Add Column in DataTable o Create DataTable row o Assign value in each column o Add DataTable in DataSet Example Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim idCoulumn As DataColumn Dim nameCoulumn As DataColumn dt = New DataTable() dt.TableName = "Data" idCoulumn = New DataColumn("ID", Type.GetType("System.Int32")) nameCoulumn = New DataColumn("Name", Type.GetType("System.String")) dt.Columns.Add(idCoulumn) dt.Columns.Add(nameCoulumn) dr = dt.NewRow() dr("ID") = 1 dr("Name") = "Name1" dt.Rows.Add(dr) dr = dt.NewRow() dr("ID") = 2 dr("Name") = "Name2" dt.Rows.Add(dr) ds.Tables.Add(dt) End Sub
  • 16. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 16 | P a g e Executing stored procedure The data provider is a set of components that include the Connection, Command, DataReader, and DataAdapter Objects. The command Object provides a number of Execute methods that can be used to perform the SQL queries in a variety of fashions. A stored procedure is a precompiled executable object that contains one or more SQL statements. A sample Stored Procedure is given below: CREATE PROCEDURE Procedure_name AS Procedure Command GO Example CREATE PROCEDURE SPPUBLISHER AS SELECT PUB_NAME FROM publishers GO The above code creates a procedure named as 'SPPUBLISHER' and it execute SQL statement that selects all publisher names from publishers table from the PUB database. Using stored procedures, database operations can be encapsulated in a single command, optimized for best performance, and enhanced with additional security. To call a stored procedure from VB.NET application, set the CommandType of the Command object to StoredProcedure. Command.CommandText=”StoreProcedure Name” command.CommandType = CommandType.StoredProcedure
  • 17. 030010401 BCA 4th Semester Preeti P Bhatt Department of Computer Science, UTU. 17 | P a g e From the following source code you can see how to call a stored procedure from VB.NET application. Imports System.Data.SqlClient Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim connetionString As String Dim connection As SqlConnection Dim adapter As SqlDataAdapter Dim command As New SqlCommand Dim ds As New DataSet Dim i As Integer connetionString = "Data Source=servername;Initial Catalog=PUBS;User ID=sa;Password=yourpassword" connection = New SqlConnection(connetionString) connection.Open() command.Connection = connection command.CommandType = CommandType.StoredProcedure command.CommandText = "SPPUBLISHER" adapter = New SqlDataAdapter(command) adapter.Fill(ds) For i = 0 To ds.Tables(0).Rows.Count - 1 MsgBox(ds.Tables(0).Rows(i).Item(0)) Next connection.Close() End Sub End Class