DataBinding in ASP.NET 2.0

30
Adam Calderon – C# MVP Application Development Practice Lead InterKnowlogy

description

Adam Calderon – C# MVP Application Development Practice Lead InterKnowlogy. DataBinding in ASP.NET 2.0. Agenda. ADO.NET New Features Binding Model Changes. ADO.NET New Features. DbProviderFactories SqlConnection Web.config SqlCommand TransactionScope SqlDataAdaptor DataSet. - PowerPoint PPT Presentation

Transcript of DataBinding in ASP.NET 2.0

Page 1: DataBinding  in ASP.NET 2.0

Adam Calderon – C# MVPApplication Development Practice LeadInterKnowlogy

Page 2: DataBinding  in ASP.NET 2.0

ADO.NET New FeaturesBinding Model Changes

Page 3: DataBinding  in ASP.NET 2.0

DbProviderFactoriesSqlConnectionWeb.configSqlCommandTransactionScopeSqlDataAdaptorDataSet

Page 4: DataBinding  in ASP.NET 2.0

CreateCommandCreateCommandBuilderCreateConnectionCreateDataAdaptorCreateParameter

Page 5: DataBinding  in ASP.NET 2.0

// Data Comes from Inputs on Formstring provider = ProviderNameBox.Text;

string connString = ConnectionStringBox.Text; string commandText = CommandTextBox.Text;

// Get the provider DbProviderFactory fact = DbProviderFactories.GetFactory(provider);

// Create the connection DbConnection conn = fact.CreateConnection(); conn.ConnectionString = connString;

// Create the data adapter DbDataAdapter adapter = fact.CreateDataAdapter(); adapter.SelectCommand = conn.CreateCommand(); adapter.SelectCommand.CommandText = commandText;

// Run the query DataTable table = new DataTable(); adapter.Fill(table);

// Shows the results Results.DataSource = table; Results.DataBind();

Page 6: DataBinding  in ASP.NET 2.0

Asynchronous Operation SupportFailover PartnerMultipleActiveResultSets (MARS)Connection String Builders

Page 7: DataBinding  in ASP.NET 2.0

ConnectionStrings elementConfigurationManager.ConnectionStrings[“MySql”].ConnectionString

Protecting Connection Strings Use aspnet_regiis.exe to encrypt

web.config <protectedData>

<protectedDataSections> <add name=“connectionStrings”

provider=“RSAProtectedConfigurationProvider” /> </protectedDataSections></protectedData>

Page 8: DataBinding  in ASP.NET 2.0

Async Methods Requires Async attribute on connection

string Limited to non-query command Reader or XmlReader

Begin/End ExecuteNonQuery ExecuteReader ExecuteXmlReader

3 Patterns for Async Implementation

Page 9: DataBinding  in ASP.NET 2.0

// Start a non-blocking executionIAsyncResult iar =

cmd.BeginExecuteReader();

// Do work while command running ….

// Block the execution until doneSqlDataReader reader =

cmd.EndExecuteReader(iar);

// Process data hereWorkWithData(reader);

Page 10: DataBinding  in ASP.NET 2.0

// Start a non-blocking executionIAsyncResult iar = cmd.BeginExecuteReader();

do {

// Do work while command running ….} while (!iar.IsComleted);

// Sync up and process dataSqlDataReader reader =

cmd.EndExecuteReader(iar);

// Process data hereWorkWithData(reader);

Page 11: DataBinding  in ASP.NET 2.0

// Start a non-blocking executionIAsyncResult iar = cmd.BeginExecuteReader( new

AsyncCallback(WorkWithData),cmd);

// … later in your code

Public void WorkWithData(IAsyncResult ar){

// Retrieve the context of the callSqlCommand cmd = (SqlCommand) ar.AsyncState;

// Complete the async operationSqlDataReader reader = cmd.EndExecuteReader(ar);

}

Page 12: DataBinding  in ASP.NET 2.0

Supports Dispose PatternDetermines if local or distributed

transaction are neededObjects that support ITransaction

can participate

Page 13: DataBinding  in ASP.NET 2.0

using (TransactionScope ts = new System.Transactions.TransactionScope()) { bool success = true;

using (SqlConnection conn = new SqlConnection(ConnString)) { SqlCommand cmd = new SqlCommand(UpdateCmd, conn); cmd.Connection.Open(); try { cmd.ExecuteNonQuery(); } catch (SqlException ex) { // Error handling code goes here lblMessage.Text = ex.Message; success = false; } }

// Must call to complete; otherwise abort if(success)

ts.Complete(); }

Page 14: DataBinding  in ASP.NET 2.0

New Properties AcceptChangesDuringUpdate FillLoadOption▪ OverwriteChanges (Current and Orginal)▪ PreserveChanges (Original Only)▪ Upsert (Current Version of row)

ReturnProviderSpecificTypes UpdateBatchSize

Page 15: DataBinding  in ASP.NET 2.0

New Properties RemotingFormat▪ Binary or Xml

SchemaSerializationMode (IncludeShema/ExcludeSchema)

New Methods CreateDataReader – Creates a reader off

a Data Table

Page 16: DataBinding  in ASP.NET 2.0

DataSet data = new DataSet();SqlDataAdapter adapter = new SqlDataAdapter(

"SELECT * FROM employees;SELECT * FROM customers",

ConfigurationManager.ConnectionStrings["LocalNWind"].ConnectionString);adapter.Fill(data);

// Access the whole data set record by recordDataTableReader reader = data.CreateDataReader();

do{

while (reader.Read())Response.Write(String.Format("{0} <br>",

reader[1]));

Response.Write("<hr>");} while (reader.NextResult());

reader.Close();

Page 17: DataBinding  in ASP.NET 2.0
Page 18: DataBinding  in ASP.NET 2.0

New Data Source PropertiesBinding ExpressionsData Source Controls

Page 19: DataBinding  in ASP.NET 2.0

DataSourceIDAppendDataBoundItems

Page 20: DataBinding  in ASP.NET 2.0

DataBinder.Eval Can be used anywhere

Eval (shortcut for DataBinder.Eval) Can be used in the context of a data

bound control <%# Eval(“lastName”)%>

Page 21: DataBinding  in ASP.NET 2.0

XPathBinder.Eval Used with Xml data anywhere

Xpath (shortcut for XPathBinder.Eval) Can be used in the context of a data bound

control <%#

Xpath(“Orders/Order/Customer/LastName”)%> XPathBinder.Select

Returns a nodeset that can be assigned to bound controls Data Source

DataSource=‘<%# XPathSelect(“orders/order/summary”)%>

Page 22: DataBinding  in ASP.NET 2.0

Bind Method <asp:TextBox …. Text=‘<%#

Bind(“notes”)%> Two-Way Binding

Dynamic Expressions Evaluated when page compiles <%$ AppSettings:AppVersionNumber %> <%$ Resources:Resource, helloString%> <%$ ConnectionString:localNWind%>

Page 23: DataBinding  in ASP.NET 2.0

Tabular Data Source Controls AccessDataSource ObjectDataSource SqlDataSource

Hierarchical Data Source Controls SiteMapDataSource XmlDataSource

DataSourceView

Page 24: DataBinding  in ASP.NET 2.0

Properties for all of the actions (Delete,Insert,Update,Select) Command Parameters CommandType

FilterExpression / FilterParameters (only works with DataSet set for the DataSourceMode)

Page 25: DataBinding  in ASP.NET 2.0

DataSourceMode Determines how data is returned

(DataSet or DataReader)CancelSelectOnNull

Canceled data retrieval if parameter is null

Page 26: DataBinding  in ASP.NET 2.0

Command contain own set of parameters

Declarative Parameters ControlParameter CookieParameter FormParameter ProfileParameter QueryStringParameter SessionParameter

Page 27: DataBinding  in ASP.NET 2.0

Caching Behavior CacheDuration (seconds) CacheExpirationPolicy (absolute,sliding) CacheKeyDependency (expiring the key) SqlCacheDependency (table dependent)

Created with each distinct SelectCommand, ConnectionString and SelectParameters

Page 28: DataBinding  in ASP.NET 2.0
Page 29: DataBinding  in ASP.NET 2.0

Async Features of ADO.NET can help in some situations

ConnectionString buildersNew TransactionScope simplifies

transactionsBinding Expressions simplify page

developmentNew DataSource objects simplify

binding to Sql Server and Objects

Page 30: DataBinding  in ASP.NET 2.0

More info on InterKnowlogy:www.InterKnowlogy.com

Contact InformationE-mail: [email protected]: 760-930-0075 x274Blog: http://blogs.InterKnowlogy.com/AdamCalderon

About Adam Calderon Microsoft MVP – C# Microsoft UI Server Frameworks Advisory Council Developer / Author / Speaker / Teacher