Learn your way! Get started

ASP.NET Using Visual Basic .NET 2003

with experts Andy Baron, Ken Getz, Mary Chipman


Course at a glance

Included in these subscriptions:

  • Dev & IT Pro Video
  • Dev & IT Pro Power Pack

Release date 10/3/2003
Level Intermediate
Runtime 22h 9m
Closed captioning N/A
Transcript N/A
eBooks / courseware Included
Hands-on labs Included
Sample code Included
Exams Included
Platform Internet Explorer Only


Enterprise Solutions

Need reporting, custom learning tracks, or SCORM? Learn More



Course description

In this course, you’ll learn how to use Visual Basic .NET to build ASP.NET Web pages and XML Web services. You’ll gain an understanding of the new architecture behind ASP.NET and how to use the new server controls. You also learn how to use ADO.NET to create data-driven ASP.NET Web forms. You’ll learn to inter-operate with non-.NET code, to manage session state, to re-use code by creating your own controls, to improve performance with output caching, to debug your application and trace its activity, to use advanced Web services features, to configure and deploy ASP.NET applications, to authenticate users and limit their access to resources, to handle multi-user data access conflicts, and to support mobile devices.

Meet the experts

Andy Baron is a nationally recognized industry expert specializing in Visual Basic, Visual C#, ASP.NET, ADO.NET, SQL Server, and SQL Server Business Intelligence. He is an experienced consultant, author, and editor for several industry publications and speaker at industry conferences. Andy has also been repeatedly selected as a Microsoft MVP for his contributions to Microsoft's online support.

Ken Getz is a featured instructor for several of our Visual Studio courses. He is a Visual Basic and Visual C# expert and has been recognized multiple times as a Microsoft MVP. Ken is a seasoned instructor, successful consultant, and the author or co-author of several best-selling books. He is a frequent speaker at technical conferences like Tech-Ed, VSLive, and DevConnections and he has written for several of the industry's most-respected publications including Visual Studio Magazine, CoDe Magazine, and MSDN Magazine.

Mary Chipman is a programmer-writer for the Data Access Technologies team at Microsoft. Previously, she was a senior consultant and was repeatedly recognized as a Microsoft MVP. Mary is the co-author of the "Microsoft Access Developer's Guide to SQL Server" (Sams) and has written additional books and articles for technical journals. She has been a frequent speaker at industry conferences and is an experienced trainer and courseware author.

Course outline



Module 1

A Review of Classic ASP (25:16)
  • Overview (02:00)
  • Configuring Examples (03:12)
  • Intro Example Solution (00:45)
  • ASP.NET Project Files (02:10)
  • Code Behind the ASP Page (02:52)
  • The ASP.NET Object Model (03:37)
  • Continue with the ASP Code (09:35)
  • Summary (01:01)
ASP vs ASP.NET (17:46)
  • Overview (00:24)
  • ASP Shortcomings (08:28)
  • ASP.NET to the Rescue (08:08)
  • Summary (00:44)
Create ASP.NET Apps (22:53)
  • Overview (00:19)
  • A New Web Project (01:31)
  • Grid Layout Mode (03:04)
  • HTML View (05:12)
  • Adding Code (06:36)
  • Target Schema (04:44)
  • Set a Start Page (00:37)
  • Summary (00:48)
Render with Server Controls (28:05)
  • Overview (01:12)
  • HTML Controls (04:05)
  • Page_Load Event Handler (06:25)
  • Run the Products-HTML page (03:38)
  • Web Forms Controls (01:55)
  • HTML View/Properties (05:55)
  • AutoPostBack property (03:09)
  • Summary (01:42)

Module 2

Creating Web Services (13:20)
  • Overview (00:39)
  • Overview of Web Services (03:21)
  • Example of a Web Service (04:58)
  • Test the Web Service (00:31)
  • WSDL of the Web Service (01:47)
  • SOAP that Gets Returned (00:59)
  • Summary (01:02)
Web Form Controls (09:15)
  • Overview (00:36)
  • WebControl Class (00:55)
  • Browser Detection (01:02)
  • Setting Attributes/Properties (05:20)
  • View the HTML (00:38)
  • View the Client Source (00:28)
  • Summary (00:14)
Simple Input Controls (05:27)
  • Overview (00:29)
  • Text Box Controls (01:46)
  • Checkbox Controls (00:48)
  • Radio Button Controls (01:33)
  • View Client Code (00:26)
  • Summary (00:23)
Button Controls (10:33)
  • Overview (00:29)
  • Submit Button Behavior (01:25)
  • HyperLink Control (02:28)
  • Displaying Images (00:48)
  • HandleCommand Event (02:01)
  • HyperLink, Image Button (01:11)
  • Page Load Event (01:43)
  • Summary (00:25)
List Controls (13:52)
  • Overview (00:25)
  • ListControls Base Class (03:43)
  • Adding List Items (01:40)
  • View Add Button Code (03:11)
  • Setting AutoPostBack (01:29)
  • SelectedIndexChanged (00:22)
  • Multiple Selections (01:43)
  • Clear Selected Items (01:02)
  • Summary (00:13)
Simple Validation Controls (20:37)
  • Overview (00:37)
  • Validation Controls (03:17)
  • The Sample Project (02:51)
  • How Val. Controls Work (01:23)
  • Simple Validators (01:55)
  • Required Validator (04:05)
  • Validator Display (00:50)
  • Range Validator (02:45)
  • Compare Validator (02:19)
  • Summary (00:29)
Complex Validation Controls (17:22)
  • Overview (00:47)
  • Regular Expressions (05:31)
  • Custom Validator (01:28)
  • Client-Side Validation (00:18)
  • Server-Side Validation (01:15)
  • Client-Side Val. Code (02:19)
  • Server-Side Val. Code (02:55)
  • Validation Summary (02:01)
  • Summary (00:43)

Module 3

Calendar Control (19:23)
  • Overview (00:34)
  • Intro- Calendar Control (05:03)
  • Calendar control Code (00:33)
  • Styles for Calendar Ctrl. (01:48)
  • Code for TodayDay Style (01:42)
  • Handling Calendar Events (01:19)
  • SelectionChanged Event (03:34)
  • DayRender Event (03:02)
  • Client Code (01:32)
  • Summary (00:14)
AdRotator Control (08:45)
  • Overview (00:27)
  • The AdRotator Control (01:09)
  • Code for AdRotator (00:36)
  • Examining Images.xml (02:10)
  • Properties of AdRotator (00:43)
  • Load AdResponse Target (01:09)
  • Target Frame Property (00:41)
  • AdCreated Event (01:32)
  • Summary (00:15)
XML Control (03:37)
  • Overview (00:24)
  • XMLControl.aspx (00:15)
  • Setting Properties (02:41)
  • Summary (00:15)
Overview of ADO.NET (34:39)
  • Overview (00:35)
  • Discovering ADO.NET (01:45)
  • ADO.NET Classes (00:54)
  • OleDb and SQLClient (01:09)
  • ADO.NET Architecture (04:42)
  • DataTable Object (01:10)
  • DataTable w/o a Connection (06:26)
  • Connect to a Data Source (01:16)
  • Set Up Connection Info (01:59)
  • Command Object (03:05)
  • DataReader Object (01:56)
  • Using SQLDataReader (08:36)
  • Summary (01:00)
Accessing Data (15:55)
  • Overview (01:06)
  • Working with Data (02:23)
  • Getting Data (01:30)
  • DataSet Object (01:24)
  • Filling a DataSet (01:13)
  • Example-Fill a DataSet (05:20)
  • DataTable Rows / Columns (00:39)
  • Using DataRows (00:44)
  • DataColumns and Schema (00:58)
  • Summary (00:34)
Choose an ADO.NET Provider (11:39)
  • Overview (01:04)
  • Choosing a Provider (00:45)
  • SQL Server .NET Provider (00:56)
  • OLEDB .NET Provider (00:52)
  • ODBC Data Provider (00:46)
  • Coding- Multiple Providers (01:19)
  • Interface Inheritance (00:42)
  • Demo- Multiple Providers (04:18)
  • Summary (00:52)

Module 4

Creating a Repeater Control (17:34)
  • Overview (00:24)
  • Config a Repeater Control (03:05)
  • Create a Repeater Control (04:17)
  • Example- Repeater Control (01:41)
  • View the HTML (06:33)
  • Use Templates to Format (01:16)
  • Summary (00:14)
Creating a DataList Control (16:19)
  • Overview (00:23)
  • Example- DataList.aspx (01:53)
  • Bind Data to a DataList (02:57)
  • Edit Data with a DataList (05:15)
  • DataListEditing Code (05:32)
  • Summary (00:16)
Setting Up a DataGrid (21:35)
  • Overview (00:41)
  • DataGrid Setup (02:15)
  • Add a SqlDataAdapter (00:30)
  • Add an SQLConnection (03:39)
  • SqlDataAdapter Properties (00:21)
  • Add DataSet / Bind DataGrid (05:31)
  • Using Property Builder (06:45)
  • Behind the Scenes (00:41)
  • Display the DataGrid (00:25)
  • Summary (00:40)
Advanced DataGrid Features (26:44)
  • Overview (00:52)
  • Example- Explore DataGrid (02:15)
  • Examining DataBinding (06:04)
  • Adding Button Columns (01:35)
  • Selecting Rows (01:58)
  • Adding a Hyperlink Column (02:22)
  • Setting Up Paging (02:56)
  • Editing Rows (01:04)
  • EditCommand Event (00:51)
  • CancelCommand Event (00:24)
  • UpdateCommand Event (03:46)
  • DeleteCommand Event (01:55)
  • Summary (00:37)

Module 5

The Role of DataSets (02:19)
  • Overview (00:27)
  • ADO.NET Object Model (00:00)
  • Summary (01:52)
Using DataSets in ASP.NET (01:34)
  • Overview (00:35)
  • Example- ManagaingData (00:00)
  • Summary (00:59)
Saving DataSets in ASP.NET (11:00)
  • Overview (01:28)
  • Using the Task List (01:56)
  • Create the DataSet (03:08)
  • Caching Data in DataSets (01:34)
  • Reloading Saved DataSets (01:43)
  • Summary (01:08)
Constraints and DataRelations (27:59)
  • Overview (02:44)
  • Adding a Constraint (02:45)
  • Types of Constraints (04:33)
  • Add DataRelations (08:58)
  • Find Method (05:11)
  • GetParentRow (02:24)
  • Summary (01:21)
DataSets with DataAdapters (34:19)
  • Overview (00:39)
  • Using CommandBuilders (03:36)
  • CommandBuilder Code (04:41)
  • Custom Cmds and Params (03:58)
  • Parameters Collection (14:14)
  • Auto-Increment Columns (05:43)
  • Summary (01:25)
DataSet Transactional Model (26:43)
  • Overview (00:45)
  • Add a New Row (02:44)
  • BeginEdit - EndEdit (04:54)
  • DataRowVersion (04:41)
  • RowState (04:59)
  • GetChanges Method (05:45)
  • Accept/Reject Changes (01:38)
  • Summary (01:14)

Module 6

Why XML Web Services? (12:00)
  • Overview (01:13)
  • Technology and Reqs (08:37)
  • Bad News- Web Services (00:42)
  • Good News- Web Services (00:43)
  • Summary (00:43)
Creating an XML Web Service (28:13)
  • Overview (00:20)
  • Create a Web Service (05:23)
  • Test the Web Service (00:18)
  • View the WSDL (04:40)
  • Example- Web Service (01:05)
  • Web Service Designer Code (01:18)
  • Examining Web Methods (05:46)
  • machine.config (01:34)
  • Disabling GET and POST (01:09)
  • Disabling WSDL (04:59)
  • Summary (01:38)
Designing XML Web Services (08:37)
  • Overview (00:25)
  • Providing Services (03:49)
  • Marshalling Data (02:22)
  • Summary (01:58)
HTTP Clients (09:26)
  • Overview (00:43)
  • Making HTTP Requests (01:58)
  • HTTP-GET/HTTP-POST (00:43)
  • web.config file (01:11)
  • Using HTTP-GET (02:11)
  • Using HTTP-POST (00:33)
  • Code for HTTP-POST (01:35)
  • Summary (00:30)
Web Services Clients (16:59)
  • Overview (01:01)
  • Creating a Client App (00:38)
  • Introducing Web References (01:28)
  • A Simple Web Application (01:08)
  • Add a Web Reference (03:39)
  • Reference .vb file (05:25)
  • Demo- Web Application (00:34)
  • More Detailed Example (02:03)
  • Summary (00:59)
Web Services - Legacy Clients (08:25)
  • Overview (00:49)
  • Legacy Clients - SOAP Toolkit (00:59)
  • Microsoft SOAP Toolkit (00:47)
  • Using a VB 6 Client (00:43)
  • MSSOAPLib 3.0 (01:06)
  • VB6 Using a Web Service (03:02)
  • Summary (00:55)
Using UDDI (10:24)
  • Overview (01:05)
  • What is UDDI? (00:58)
  • Searching a UDDI Portal (02:40)
  • UDDI Test Server (00:22)
  • Consuming a Web Service (04:22)
  • Summary (00:56)
Migrating ASP to ASP.NET (14:07)
  • Overview (00:40)
  • The Path to ASP.NET (01:28)
  • Benefits of Migrating (02:53)
  • Deciding on a Strategy (02:05)
  • Preparing to Migrate (01:16)
  • Upgrading VB 6.0 Projects (01:16)
  • Migrating an ASP Page (03:44)
  • A Migrated ASP Page (00:27)
  • Summary (00:15)
Using COM Objects (21:07)
  • Overview (00:25)
  • COM Components (02:22)
  • Managed - Unmanaged Code (00:41)
  • The Runtime Callable Wrapper (01:21)
  • PIAs (01:43)
  • Working with a PIA (02:00)
  • Sample Interop App (02:58)
  • ADO Recordsets (01:01)
  • Call an ActiveX DLL (04:37)
  • Work with ADO XML (03:32)
  • Summary (00:23)
Platform Invocation Services (09:16)
  • Overview (00:54)
  • P/Invoke Caveats (01:46)
  • Creating a Wrapper Class (04:59)
  • Calling the Wrapper Class (01:07)
  • Summary (00:28)

Module 7

Preserving State in Web Apps (24:11)
  • Overview (02:00)
  • Methods of Preserving State (03:43)
  • Sample application (02:55)
  • __ViewState Control (01:19)
  • Understanding Viewstate (09:15)
  • Limits of Page-Level State (00:39)
  • EnablingViewstateMac (03:08)
  • Summary (01:09)
Cookies (12:36)
  • Overview (01:57)
  • Working with Cookies (03:03)
  • Examples of Using Cookies (02:22)
  • Viewing Cookies.aspx (03:34)
  • Summary (01:38)
ASP.NET Session State (24:42)
  • Overview (01:07)
  • Problems in Classic ASP (08:30)
  • SessionState (02:09)
  • SessionID.aspx (02:00)
  • Storing Session Data (02:38)
  • SelectProducts (02:11)
  • Session State Objects (04:43)
  • Summary (01:21)
Configuring Session State (37:00)
  • Overview (01:51)
  • Editing Configuration Files (00:44)
  • Session State Attributes (03:45)
  • web.config - machine.config (00:36)
  • State Server Mode (01:23)
  • ASP.NET State Service (02:11)
  • Testing StateServer (07:02)
  • SQL Server Mode (01:58)
  • SQL Server Session State (11:38)
  • Testing SQL Server (01:24)
  • Cookieless Session IDs (02:46)
  • Summary (01:37)
User and Custom Controls (19:21)
  • Overview (00:47)
  • Two Kinds of Controls (01:02)
  • UserControls App (00:37)
  • Adding a User Control (01:18)
  • Viewing the Page (01:59)
  • A More Complex Control (01:05)
  • Completed.aspx (01:09)
  • Dropdown List Code (01:11)
  • Creating the State Control (08:25)
  • Test the User Control (00:45)
  • Summary (00:57)
Creating Server Controls (12:00)
  • Overview (00:53)
  • Web Control Libraries (02:12)
  • Test Your Control (00:24)
  • Adding Your Control (01:47)
  • HTML View of the Control (00:43)
  • Code View of the Control (00:19)
  • Render Method (02:58)
  • WriteFullBeginTag (01:43)
  • Summary (00:56)
Custom Control Example (41:14)
  • Overview (00:56)
  • The StateList.sln project (04:50)
  • HTMLTextWriter Class (00:43)
  • Constructor (02:08)
  • Setting Up for PostBack (03:04)
  • Render the Contents (03:52)
  • StateList Properties (02:54)
  • Property Behavior (05:07)
  • PostBack Data (00:59)
  • IPostBackDataHandler (01:35)
  • Methods of the Interface (06:09)
  • How Everything Works (01:58)
  • A Toolbox Bitmap (02:50)
  • Default Properties (03:04)
  • Summary (00:56)

Module 8

Output Caching (56:01)
  • Overview (03:38)
  • Read Permissions (02:10)
  • Types of Caching (02:39)
  • Caching Static Pages (00:58)
  • Duration Attribute (00:34)
  • VaryByParam Attribute (02:06)
  • Query String Parameters (03:48)
  • HTML - DairyProducts.aspx (01:00)
  • Code - DairyProducts.aspx (04:44)
  • Page Directives (00:42)
  • Other Types of Cache (03:51)
  • HTTP Headers (06:43)
  • Code for VaryByCustom (06:55)
  • VaryByCustom String (03:02)
  • View HTTP Cache Policy (02:40)
  • Programmatic Caching (02:28)
  • Setting a Cache's Duration (02:38)
  • Viewing a Static Page (03:50)
  • Summary (01:27)
Caching Page Fragments (41:07)
  • Overview (01:14)
  • UserControls.aspx (02:50)
  • A Page with User Controls (03:45)
  • User Contol Problems (05:22)
  • Name Value in VaryByParam (03:31)
  • Eliminate VaryByParam (03:13)
  • Caching Controls on a Page (02:58)
  • Control - Multiple Instances (01:15)
  • BackColor Property (02:08)
  • Nesting Controls (08:01)
  • Nested Control Sample (02:02)
  • User Control Traps to Avoid (03:51)
  • Summary (00:52)
Caching Data (23:36)
  • Overview (01:20)
  • Caching Data (07:05)
  • Sample of Caching Data (03:23)
  • CuteFurryAnimals.aspx (08:30)
  • File and Key Dependencies (01:55)
  • Summary (01:21)
Monitoring Performance (11:25)
  • Overview (02:16)
  • The Performance Monitor (03:30)
  • Application Center Test (03:01)
  • Simulating Performance (01:18)
  • Summary (01:17)

Module 9

Tracing in ASP.NET (08:44)
  • Overview (00:35)
  • Page Level Tracing (01:04)
  • Enable Tracing (00:41)
  • Example - Trace Details (01:08)
  • View the Code (00:29)
  • Writing Trace Information (01:44)
  • Page Output (01:24)
  • Loading Trace.axd (01:20)
  • Summary (00:16)
The Windows Event Log (10:00)
  • Overview (00:23)
  • Configure an Event Log (01:37)
  • Viewing the Event Log (01:38)
  • Writing to the Event Log (03:30)
  • Custom Error Page (02:36)
  • Summary (00:15)
Trace Listener / Switches (09:57)
  • Overview (00:42)
  • Trace Listeners (00:38)
  • Trace Switches (01:10)
  • Configuring Trace Switches (00:51)
  • Trace Listeners Setup (03:17)
  • TraceListener.aspx (03:02)
  • Summary (00:14)
Debugging ASP.NET Apps (17:55)
  • Overview (00:33)
  • Configuring Debugging (02:26)
  • Configure SQL Debugging (04:38)
  • Debug Stored Procedures (02:15)
  • Setting Breakpoints (02:53)
  • Debug Windows (04:52)
  • Summary (00:15)
Consuming Web Services (22:06)
  • Overview (01:12)
  • Synchronous / Asynchronous (01:47)
  • Synchronous Web Services (01:17)
  • Run the Web Service (00:35)
  • Web Service Code (01:31)
  • Asynchronous Web Services (01:51)
  • Create the Event Source (01:26)
  • Sample Code (02:55)
  • Delegates (04:02)
  • Properties of IAsynchResult (04:11)
  • Summary (01:14)
Binary Information (23:48)
  • Overview (00:43)
  • Transfering Binary Info. (01:16)
  • Web Service Test (02:45)
  • CuteFurryAnimals.aspx (01:28)
  • The Image Web Service (02:40)
  • Code for GetImage (03:00)
  • HTML for the Page (00:52)
  • Retrieving a List of Images (02:03)
  • XML Sent to the Client (01:50)
  • Non-Local Images (03:00)
  • GetPicture.aspx Code (02:39)
  • Summary (01:28)

Module 10

Deploying ASP.NET Apps (25:12)
  • Overview (00:24)
  • Install the .NET Framework (00:47)
  • Install MDAC (00:24)
  • Install IIS (04:54)
  • Setup ASPNET Account (01:32)
  • Configuration Files (03:39)
  • Application-Level Settings (04:43)
  • Database Resources (05:02)
  • The SQL Server sa user (03:22)
  • Summary (00:20)
ASP.NET Architecture (30:05)
  • Overview (00:24)
  • ASP.NET File Architecture (01:50)
  • Assemblies (01:58)
  • ASP.NET App Execution (00:57)
  • Running Multiple Versions (03:05)
  • XCOPY Deployment (01:58)
  • Copy Project Deployment (02:58)
  • A Web Setup Project (01:37)
  • Create a Web Setup Project (02:49)
  • Adding Project Output (04:56)
  • Custom Web Setup Project (02:55)
  • Launch Conditions (04:11)
  • Summary (00:20)
ASP.NET Mobile Controls (17:52)
  • Overview (00:57)
  • A Big Problem, and a Solution (03:20)
  • Testing Mobile Pages (01:21)
  • How Mobile Pages Work (00:32)
  • How Mobile Pages Browse (01:50)
  • A Simple Mobile Web Page (03:08)
  • Make a Mobile Page Work (01:31)
  • Using an Wmulator (02:46)
  • How Did this Code Work? (01:02)
  • Summary (01:20)
More on Mobile Controls (33:36)
  • Overview (00:40)
  • Container Controls (00:37)
  • Example- Container Controls (02:51)
  • Transfer Controls (04:54)
  • Text Display Controls (02:09)
  • List and Selection Controls (05:46)
  • Code Example (01:26)
  • Object List Control (02:46)
  • Code for Object List Control (05:57)
  • Validation Controls (02:38)
  • Image Display Controls (00:29)
  • Misc. Controls (02:28)
  • Summary (00:46)

Module 11

ASP.NET Security Overview (15:49)
  • Overview (00:51)
  • IIS and ASP.NET Security (04:14)
  • ASP.NET Authentication (02:04)
  • Configure ASP.NET Settings (01:21)
  • Authorization (01:42)
  • Configuring IIS Settings (03:59)
  • Impersonation (01:13)
  • Summary (00:21)
Windows Authentication (09:34)
  • Overview (00:21)
  • Configuring Security (04:25)
  • WindowsAuth.sln (04:26)
  • Summary (00:20)
Forms Authentication (25:00)
  • Overview (00:39)
  • Form-Based Authentication (01:49)
  • The FormsAuth Project (02:29)
  • Configure Authentication (03:47)
  • Code- FormsAuth.sln (03:44)
  • Hashing Passwords (04:33)
  • Hashes in the web.config File (02:33)
  • Using XML to Store Info. (05:01)
  • Summary (00:20)
Custom Authentication (33:27)
  • Overview (00:29)
  • Storing Secrets Safely (04:03)
  • CreateWebUserObjects.sql (00:56)
  • Results of Script (01:41)
  • Examine Stored Procedures (05:12)
  • Run the Sample Application (02:30)
  • Code Behind Default.aspx.vb (05:38)
  • CreateSale Method Code (03:35)
  • GetRolesString Method Code (05:12)
  • Run the CustomAuth Sample (03:40)
  • Summary (00:25)

Module 12

DataSets (36:49)
  • Overview (01:56)
  • ASPNET Write Permissions (05:47)
  • Saving XML Schema and Data (02:05)
  • CategoriesProducts Schema (01:43)
  • CategoriesProducts XML (03:42)
  • Sequence Tags (03:44)
  • XPath (02:44)
  • DataRelation: Nested Property (01:36)
  • CategoriesProductsDataNested (03:24)
  • Edit Products Code (00:23)
  • Loading XML Schema / Data (07:18)
  • Summary (02:22)
Typed DataSets (46:34)
  • Overview (02:12)
  • CategoriesProducts.xsd (02:59)
  • Browser for Typed DataSets (03:58)
  • Creating a Typed DataSet (03:27)
  • DataSet Schema Annotations (01:18)
  • Typed DataSet Schema Annt. (07:57)
  • Generating a Typed DataSet (04:40)
  • XML Schema Graphically (03:13)
  • Define a Relationship (04:11)
  • Cascading Options (10:12)
  • Summary (02:21)
Concurrency (56:09)
  • Overview (00:59)
  • A Concurrency Conflict (03:16)
  • Update Criteria (07:16)
  • DataHandling Sample (02:36)
  • Concurrency Conflicts (02:52)
  • Display Concurrency Errors (04:15)
  • lnkSave_Click Event (07:33)
  • Stored Procedure Code (12:07)
  • Handling Data Updates (00:40)
  • RowUpdated Event (05:04)
  • SQLRowUpdatedEventArgs (03:52)
  • Check dtChanges.HasErrors (02:47)
  • Summary (02:46)