* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Module 3: Using ADO.NET to Access Data
Survey
Document related concepts
Transcript
Module 3: Using ADO.NET to Access Data Overview Overview of ADO.NET Connecting to a Data Source Accessing Data with DataSets Using Stored Procedures Accessing Data with DataReaders Binding to XML Data Overview of ADO.NET The ADO.NET Object Model Animation: Using ADO.NET to Access Data RecordSets vs. DataSets Using Namespaces The ADO.NET Object Model .ASPX Page DataReader Command Company: Northwind Traders Database Connection DataSetCommand DataView DataSet .ASPX Page List-Bound Control Animation: Using ADO.NET to Access Data RecordSets vs. DataSets Recordset DataSet One Table Multiple Tables Based on Join Includes Relationship Move Row by Row Navigate via Relationship Disconnected Transmit XML File Connected or Disconnected COM Marshalling Using Namespaces Use the Import Construct to Declare Namespaces <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SQL" %> Namespaces Used with ADO.NET Include: System.Data System.Data.ADO System.Data.SQL System.Data.XML System.Data.SQLTypes Connecting to a Data Source Using SQLConnection Dim strConn As String = _ "server=localhost; uid=sa;pwd=; database=northwind" Dim conn As SQLConnection = New SQLConnection(strConn) Using ADOConnection Dim strConn As String = "Provider= SQLOLEDB.1; " & _ "Data Source=localhost; uid=sa; pwd=; " & _ "InitialCatalog=northwind;" Dim conn As ADOConnection = New ADOConnection(strConn) Accessing Data with DataSets Using DataSets to Read Data Storing Multiple Tables in a DataSet Using DataViews Displaying Data in the DataGrid Control Demonstration: Displaying Data in a DataGrid Using Templates Using the Repeater Control Demonstration: Displaying Data in a Repeater Control Using DataSets to Read Data Create the Database Connection Store the Query in a DataSetCommand Dim cmdAuthors As SQLDataSetCommand cmdAuthors = New SQLDataSetCommand _ ("select * from Authors", conn) Create and Populate the DataSet with DataTables Dim ds As DataSet ds = New DataSet() cmdAuthors.FillDataSet(ds, "Authors") Storing Multiple Tables in a DataSet Add the First Table command = New SQLDataSetCommand _ ("select * from Authors", conn) command.FillDataSet(ds, "Authors") Add the Subsequent Table(s) command.SelectCommand = New SQLCommand _ ("select * from Books", conn) command.FillDataSet(ds, "Books") Books DataSet Authors Data Tables Using DataViews DataViews Can be Customized to Present a Subset of Data from a DataTable The DefaultView Property Returns the Default DataView for the Table Dim dv as DataView dv = ds.Tables("Authors").DefaultView Setting Up a Different View of a DataSet Dim dv as DataView dv = New DataView (ds.Tables("Authors")) dv.RowFilter = "state = 'CA'" Displaying Data in the DataGrid Control Create the Control <asp:DataGrid id="dgAuthors" runat="server" /> Bind to a DataView dgAuthors.DataSource=ds.Tables("Authors").DefaultView dgAuthors.DataBind() Demonstration: Displaying Data in a DataGrid Using Templates HeaderTemplate ItemTemplate SeparatorTemplate AlternatingItemT emplate FooterTemplate Using the Repeater Control Create the Control and Bind to a DataView Display Data in Templated Elements <asp:Repeater id="repList" runat="server"> <template name="ItemTemplate"> <%# Container.DataItem("au_lname") %> </template> </asp:Repeater> Demonstration: Displaying Data in a Repeater Control Using Stored Procedures Calling Stored Procedures Passing Parameters Calling Action Stored Procedures Demonstration: Calling Stored Procedures Calling Stored Procedures Stored Procedures Provide Security for Database Set up the DataSetCommand Dim cmd as SQLDataSetCommand cmd = New SQLDataSetCommand() With cmd.SelectCommand .ActiveConnection = conn .CommandText = "ProductCategoryList" .CommandType = CommandType.StoredProcedure End With Run the Stored Procedure and Store Returned Records cmd.FillDataSet(ds, "Categories") Passing Parameters Create Parameter, Set Direction and Value, Add to the Parameters Collection workParam = New SQLParameter("@CategoryID", _ SQLDataType.Int) workParam.Direction = ParameterDirection.Input workParam.Value = CInt(txtCatID.Text) cmd.SelectCommand.Parameters.Add (workParam) Run Stored Procedure ds = new DataSet() cmd.FillDataSet(ds, "Products") Calling Action Stored Procedures Use SQLCommand Object Dim myCmd As SQLCommand = New SQLCommand _ ("OrdersCount", conn) Call the ExecuteNonQuery Method conn.Open() myCmd.ExecuteNonQuery() conn.Close() Retrieve Output Parameters curSales = myCmd.Parameters("@ItemCount").Value Demonstration: Calling Stored Procedures Lab 3: Using ADO.NET to Access Data Accessing Data with DataReaders Creating a DataReader Reading Data from a DataReader Demonstration: Accessing Data Using DataReaders Using DataSets vs. DataReaders Creating a DataReader Create and Open the Database Connection Dim conn As SQLConnection = New SQLConnection _ ("server=localhost;uid=sa;pwd=;database=pubs") conn.Open() Create the DataReader From a Command Object Dim cmdAuthors As SQLCommand = New SQLCommand _ ("select * from Authors", conn) Dim dr As SQLDataReader cmdAuthors.Execute(dr) Close the Connection Reading Data from a DataReader Call Read for Each Record Call Get for Each Field Returns false when there are no more records Parameter is the ordinal position of the field Call Close to Free Up the Connection myReader.Read() lblName.Text = myReader.GetString(1) + ", " + _ myReader.GetString(2) myReader.Close() Demonstration: Accessing Data Using DataReaders Using DataSets vs. DataReaders DataSet 1. Create a database connection DataReader 1. Create a database connection 2. Open the database connection 3. Store query in Command 2. Store query in DataSetCommand 3. Populate DataSet with FillDataSet method 4. Populate DataReader with Execute method 4. Create DataView 5. 5. Bind DataView to list-bound control Call Read for each record, and Get for each field 6. Manually display data 7. Close the DataReader and the connection Binding to XML Data Overview of XML Reading XML Data into a DataSet Demonstration: Reading XML Data into a DataSet Overview of XML Machine-Readable and Human-Readable Data Defines the Data Content and Structure Separates Structure From Presentation Allows You to Define Your Own Tags and Attributes <employee> <name>Jake</name> <salary>25000</salary> <region>Ohio</region> </employee> Reading XML Data into a DataSet Read the XML File fs = New FileStream _ (Server.MapPath("schemadata.xml"), _ FileMode.Open, FileAccess.Read) Read the Contents of the File Stream Reader = New StreamReader(fs) Read Data From the StreamReader into a DataSet ds.ReadXml(Reader) Demonstration: Reading XML Data into a DataSet Review Overview of ADO.NET Connecting to a Data Source Accessing Data with DataSets Using Stored Procedures Accessing Data with DataReaders Binding to XML Data