Learn your way! Get started

ASP.NET Using Visual C# .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 12/4/2003
Level Intermediate
Runtime 20h 46m
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 will learn how to use Visual C# .NET to build ASP.NET Web pages and XML Web Services. You will gain an understanding of the new architecture behind ASP.NET and how to use the new server controls. You will also learn how to use ADO.NET to create data-driven ASP.NET Web forms. You will learn to interoperate with non-.NET code, manage session state, and reuse code by creating your own controls. This course teaches you how to improve performance with output caching, debug your applications and trace its activity, use advanced Web Services features, and configure and deploy ASP.NET applications. Finally you will learn to authenticate users and limit their access to resources, handle multi-user data access conflicts, and 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 (24:00)
  • Introduction (02:00)
  • Intro.sln (02:22)
  • Set Up SQL Server Login (03:38)
  • Code in Products-ASP.asp (03:21)
  • ASP Object Model (04:01)
  • Connection Object (02:58)
  • Input Control (03:46)
  • Run the Page (00:50)
  • Summary (01:01)
ASP vs ASP.NET (17:56)
  • Introduction (00:24)
  • ASP Shortcomings (09:10)
  • ASP.NET to the Rescue (07:36)
  • Summary (00:44)
Create ASP.NET Web Apps (23:35)
  • Introduction (00:19)
  • Create a New Application (02:47)
  • Format Controls (05:50)
  • Adding Some Code (03:34)
  • Property Window (03:35)
  • View the Code Window (03:32)
  • targetSchema (03:07)
  • Summary (00:48)
HTML Server Controls (33:29)
  • Introduction (01:12)
  • HTML Controls (05:12)
  • HTML Control Namespace (02:01)
  • Page_Load Event (03:48)
  • Postback Properties (02:01)
  • HTML Table (04:21)
  • Viewstate Control (01:10)
  • Web Controls (05:14)
  • Run the Sample (01:13)
  • AutoPostBack (01:47)
  • Postback Triggers (03:40)
  • Summary (01:42)

Module 2

XML Web Services (15:30)
  • Introduction (00:39)
  • Create a Web Service (05:46)
  • Create a Web Method (03:36)
  • Test the Web Service (04:24)
  • Summary (01:02)
Web Form Controls (08:01)
  • Introduction (00:36)
  • Intro to Web Forms Controls (01:57)
  • Adding Label Controls (01:08)
  • Setting Label Properties (03:14)
  • View Client Source (00:50)
  • Summary (00:14)
Simple Input Controls (06:19)
  • Introduction (00:29)
  • Textbox/Password Controls (01:47)
  • Checkbox/Radio Button (03:39)
  • Summary (00:23)
Button Control (12:01)
  • Introduction (00:29)
  • Submit Control (01:25)
  • Hyperlink Control (03:16)
  • HandleCommand Event (03:08)
  • Image Control (03:16)
  • Summary (00:25)
List Controls (12:11)
  • Introduction (00:25)
  • ListControls Base Class (01:42)
  • Run the Sample (02:01)
  • Add List Items (01:38)
  • Add Items Code (03:37)
  • HandlePostBack Code (01:06)
  • SelectedIndexChanged Event (00:28)
  • Clear Selection (00:56)
  • Summary (00:13)
Validating User Input (20:42)
  • Introduction (00:37)
  • Validation Process (03:12)
  • Run the Sample Page (02:50)
  • Client-side Validation (01:59)
  • How Validation Works (01:25)
  • RequiredField Validator (03:14)
  • Multiple Validators (00:13)
  • Display property (01:39)
  • RangeValidator (02:46)
  • CompareValidator (02:14)
  • Summary (00:29)
Regular Expression Validators (15:55)
  • Introduction (00:47)
  • Overview (01:47)
  • Regular Expression Editor (00:32)
  • Regular Expression Library (03:20)
  • Custom Validation (02:21)
  • CustomValidator Control (00:45)
  • Client-side Validation (02:17)
  • Server-side Validation (01:27)
  • Validation Summary Control (01:50)
  • Summary (00:43)

Module 3

Calendar Control (21:11)
  • Introduction (00:34)
  • Calendar Control Properties (02:28)
  • Layout/Selection Modes (03:29)
  • Style Properties (01:50)
  • Calendar Control Events (03:44)
  • VisibleMonthChanged (00:52)
  • SelectionChanged Event (01:56)
  • DayRender Event (01:48)
  • Cell Property (00:13)
  • Page_load Code (02:19)
  • Client-side Code (01:39)
  • Summary (00:14)
AdRotator Control (12:55)
  • Introduction (00:27)
  • Overview (01:08)
  • AdRotator Properties (02:22)
  • Weighting Impressions (00:50)
  • AdResponse (02:22)
  • TargetFrame (01:17)
  • KeywordFilter Property (02:02)
  • AdCreated Event (02:09)
  • Summary (00:15)
XML Control (04:23)
  • Introduction (00:24)
  • Set up XML/XSL (01:25)
  • XML Control Properties (01:32)
  • Stylesheet Properties (00:45)
  • Summary (00:15)
DataAdapter Object (18:16)
  • Introduction (00:35)
  • Overview (03:56)
  • DataSet Object (02:35)
  • Run the Sample (00:58)
  • Working with the DataAdapter (00:57)
  • Fill a DataSet (03:34)
  • DataTables (00:38)
  • Using DataRows (00:45)
  • DataColumns and Schema (00:59)
  • Filling DataSets from SQL Server (02:15)
  • Summary (01:00)
Choosing a Provider (11:19)
  • Introduction (01:06)
  • Overview (00:44)
  • SQL Server Data Provider (00:57)
  • OLEDB Data Provider (00:52)
  • ODBC Data Provider (00:47)
  • Multiple Providers (01:17)
  • Using Interface Interitance (00:43)
  • Code for Multiple Providers (04:15)
  • Summary (00:34)
Overview of ADO.NET (33:04)
  • Introduction (01:04)
  • Overview (01:45)
  • ADO.NET Classes (00:54)
  • OleDb and SQL Client (01:09)
  • The ADO.NET Architecture (04:42)
  • The DataTable Object (01:10)
  • Create a DataTable (05:07)
  • Connecting to a DataSource (03:16)
  • Command Object (03:05)
  • DataReader Object (01:57)
  • Run the DataReader Sample (07:56)
  • Summary (00:52)

Module 4

DataList - Repeater DataBind (16:26)
  • Introduction (00:24)
  • Configure a Repeater Control (01:14)
  • Create a Repeater Control (04:25)
  • Run the Repeater Sample (00:54)
  • View DataBinding Code (01:53)
  • View DataBinding HTML (02:04)
  • RepeaterBind() Procedure (02:10)
  • Using Templates to Format (03:05)
  • Summary (00:14)
DataList Examples (15:54)
  • Introduction (00:23)
  • Run DataList.aspx Example (01:48)
  • Bind Data to a DataList (02:03)
  • Edit Data with a DataList (01:30)
  • Editing DataList Templates (04:43)
  • DataListEditing Code (05:07)
  • Summary (00:16)
Binding the DataGrid Control (19:35)
  • Introduction (00:41)
  • Setting Up the DataGrid (02:00)
  • Add a SQLDataAdapter (00:45)
  • Add an SQLConnection (03:25)
  • Add DataSet/Bind DataGrid (04:58)
  • Using the Property Builder (03:49)
  • More Property Builder (02:46)
  • Display the DataGrid (00:27)
  • Summary (00:40)
DataGrid Example (26:32)
  • Introduction (00:52)
  • Examine the Sample (01:50)
  • Examing DataBinding (05:55)
  • Adding Button Controls (02:07)
  • Adding a Hyperlink Column (01:17)
  • Selecting Rows (01:27)
  • Setting Up Paging (02:03)
  • PageIndexChanged Event (02:19)
  • Editing Rows (01:15)
  • EditCommand Event (01:03)
  • CancelCommand Event (00:19)
  • UpdateCommand Event (03:38)
  • DeleteCommand Event (01:44)
  • Summary (00:37)

Module 5

Role of DataSets in ADO.NET (21:27)
  • Introduction (00:27)
  • ADO.NET Object Model (05:42)
  • System.Data Namespace (08:38)
  • Advantages of Using DataSets (04:46)
  • Summary (01:52)
Using DataSets (12:49)
  • Introduction (00:35)
  • Run the EditProducts.aspx (01:42)
  • Run EditProducts (06:26)
  • Hold Changes (01:47)
  • Friendly Error Message (01:18)
  • Summary (00:59)
Saving DataSets (17:16)
  • Introduction (01:28)
  • Check ASPNET User Rights (04:18)
  • Using the Task List (02:33)
  • Create the DataSet (04:44)
  • Caching Data in DataSets (01:54)
  • Retrieve Saved DataSets (01:08)
  • Summary (01:08)
Constraints and DataRelations (31:38)
  • Introduction (02:44)
  • Adding a Constraint (04:09)
  • Types of Constraints (05:19)
  • DataRelations (02:24)
  • Add a DataRelation (05:12)
  • Find Method (07:18)
  • GetParentRow (03:07)
  • Summary (01:21)
CommandBuilder (33:37)
  • Introduction (00:39)
  • Using the CommandBuilder (00:33)
  • CommandBuilder Code (08:58)
  • Custom Params - Commands (02:02)
  • Parameters Collection (05:10)
  • SourceVersion (08:50)
  • Auto Increment Columns (05:57)
  • Summary (01:25)
Transactional Model in DataSets (23:54)
  • Introduction (00:45)
  • Add a New Row (02:49)
  • BeginEdit - EndEdit (05:46)
  • DataRowVersion (03:41)
  • RowState (03:50)
  • GetChanges Method (02:50)
  • Accept/Reject Changes (02:55)
  • Summary (01:14)

Module 6

Web Service Requirements (01:56)
  • Introduction (01:13)
  • Technology and Reqs (00:00)
  • Summary (00:43)
Designing XML Web Services (18:02)
  • Introduction (00:20)
  • Examine GetInventory Service (00:28)
  • Web Service Protocols (04:40)
  • machine.config (01:29)
  • Disabling GET and POST (02:04)
  • web.config (01:44)
  • Disabling WSDL (05:37)
  • Summary (01:38)
Create a Web Service (14:33)
  • Introduction (00:25)
  • Create a Web Service (04:56)
  • View the WSDL (01:40)
  • InventoryWebService Solution (02:39)
  • Examining Web Methods (02:52)
  • Summary (01:58)
HTTP Get and HTTP Post (08:22)
  • Introduction (00:43)
  • Making HTTP Requests (01:58)
  • HTTP-GET/HTTP-POST (00:34)
  • web.config File (01:03)
  • Using HTTP-GET (01:44)
  • Using HTTP-POST (00:23)
  • Client Source for HTTP-POST (01:23)
  • Summary (00:30)
Creating a Client App (13:57)
  • Introduction (01:01)
  • Creating a Client App (00:38)
  • Introducing Web References (01:19)
  • Create a Simple Web App (01:03)
  • Add a Web Reference (01:36)
  • Discovery File (00:21)
  • WSDL of the Web Service (00:24)
  • reference.map File (00:10)
  • Reference.cs File (03:57)
  • Demo the Web Application (00:14)
  • More Complex Example (02:10)
  • Summary (00:59)
SOAP Toolkit (08:25)
  • Introduction (00:49)
  • Legacy Client - SOAP Toolkit (00:59)
  • Microsoft SOAP Toolkit (00:47)
  • Using a VB 6 Client (00:50)
  • MSSOAPLib 3.0 (01:01)
  • VB6 Using a Web Service (02:38)
  • More SOAP Toolkit (00:22)
  • Summary (00:55)
UDDI (10:19)
  • Introduction (01:05)
  • What Is UDDI? (00:58)
  • Searching a UDDI Portal (02:38)
  • UDDI Test Server (00:31)
  • Consuming a Web Service (03:31)
  • Run the Web Service (00:37)
  • Summary (00:56)
Interoperability - Coexistence (15:58)
  • Introduction (00:40)
  • The Path to ASP.NET (01:59)
  • Benefits of Migrating (02:39)
  • Deciding on a Strategy (02:35)
  • Preparing to Migrate (01:37)
  • Upgrading VB 6.0 Projects (00:07)
  • Migrating an ASP Page (04:26)
  • A Migrated ASP Page (01:37)
  • Summary (00:15)
COM Compenents and .NET (26:19)
  • Introduction (00:25)
  • COM Components (02:26)
  • Managed - Unmanaged Code (00:42)
  • The Runtime Callable Wrapper (01:41)
  • PIAs (01:58)
  • Setting a Reference to a PIA (01:51)
  • Sample Interop App (01:31)
  • ADO Recordsets (02:11)
  • VBA Gotchas (02:30)
  • Call an ActiveX DLL (06:24)
  • Work with ADO XML (04:12)
  • Summary (00:23)
Calling Windows API (06:42)
  • Introduction (00:54)
  • P/Invoke Caveats (02:23)
  • Calling the Wrapper Class (01:28)
  • Creating a Wrapper Class (01:27)
  • Summary (00:28)

Module 7

Methods of Preserving State (20:52)
  • Introduction (02:00)
  • Methods of Preserving State (04:47)
  • Sample Application (02:01)
  • ViewState Control (00:24)
  • Understanding Viewstate (05:41)
  • Limits of Page-Level State (03:21)
  • EnablingViewStateMac (01:26)
  • Summary (01:09)
Cookies (14:01)
  • Introduction (01:57)
  • Working with Cookies (04:33)
  • Examples of Using Cookies (02:54)
  • Viewing Cookies.aspx (02:57)
  • Summary (01:38)
Session State (24:16)
  • Introduction (01:07)
  • Problems in Classic ASP (06:00)
  • SessionState (03:18)
  • SessionID.aspx (00:09)
  • Storing Session Data (04:03)
  • SelectProducts (03:13)
  • Session State Objects (05:01)
  • Summary (01:21)
Configuring Session State (40:15)
  • Introduction (01:51)
  • Editing Configuration Files (00:58)
  • Session State Attributes (05:12)
  • State Server mode (01:22)
  • ASP.NET State Server (02:29)
  • Testing State Server (01:51)
  • ISerializable (05:32)
  • SQL Server Mode (01:08)
  • SQL Server Session State (11:56)
  • Testing SQL Server (02:23)
  • Cookieless Session IDs (03:50)
  • Summary (01:37)
User and Custom Controls (16:18)
  • Introduction (00:47)
  • Two Kinds of Controls (01:01)
  • UserControls App (00:19)
  • Adding a User Control (01:02)
  • Viewing the Page (02:02)
  • A More Complex Control (01:06)
  • Completed.aspx (01:42)
  • Dropdown List Code (00:32)
  • Creating the State Control (05:57)
  • Test the User Control (00:47)
  • Summary (00:57)
Creating Server Controls (09:55)
  • Introduction (00:53)
  • Web Control Libraries (02:01)
  • Test Your Control (00:32)
  • Adding Your Control (01:14)
  • HTML View of the Control (00:45)
  • Code View of the Control (02:54)
  • Render Method (00:48)
  • Summary (00:44)
StateDropDownList Control (32:29)
  • Introduction (00:56)
  • StateList.sln (04:07)
  • HTML TextWriter Class (03:43)
  • Render the Contents (01:50)
  • StateList Properties (01:30)
  • Property Behavior (05:37)
  • PostBack Data (00:58)
  • IPostbackDataHandler (01:28)
  • Methods of the Interface (03:15)
  • How Everything Works (02:38)
  • A Toolbox Bitmap (03:11)
  • Default Properties (02:15)
  • Summary (00:56)

Module 8

Output Caching (40:32)
  • Introduction (03:38)
  • Types of Caching (00:22)
  • Caching Static Pages (00:23)
  • Duration Attribute (01:53)
  • DairyProducts.aspx HTML (01:09)
  • ReadFile.cs (01:45)
  • DairyProducts.aspx Code (01:55)
  • Query String Parameters (05:47)
  • HTTP Headers (05:58)
  • Code for VaryByCustom (04:51)
  • VaryByCustom String (04:52)
  • Programmatic Caching (01:21)
  • Viewing a Static page (02:56)
  • View HTTP Cache Policy (02:09)
  • Summary (01:27)
Output Caching Example (35:16)
  • Introduction (01:14)
  • UserControls.aspx (02:48)
  • A Page with User Controls (00:31)
  • User Control Problems (01:05)
  • Name Value in VaryByParam (05:48)
  • Eliminate VaryByParam (04:07)
  • Caching Controls on a Page (02:35)
  • BackColor Property (03:38)
  • Nesting Controls (09:01)
  • Nested Controls Sample (03:32)
  • Summary (00:52)
Cache Object (20:31)
  • Introduction (01:20)
  • Caching Data (06:14)
  • Sample of Caching Data (04:29)
  • CuteFurryAnimals.aspx (01:17)
  • File and Key Dependencies (05:47)
  • Summary (01:21)
Performance Monitor (11:26)
  • Introduction (02:16)
  • The Performance Monitor (03:51)
  • Application Center Test (02:24)
  • Simulating Performance (01:36)
  • Summary (01:17)

Module 9

Tracing (08:41)
  • Introduction (00:35)
  • Page Level Tracing (01:08)
  • Enable Tracing (00:46)
  • Trace Details Example (01:16)
  • View the Code (00:22)
  • Writing Trace Information (01:10)
  • Page Output (01:57)
  • Loading Trace.axd (01:08)
  • Summary (00:16)
Windows Event Log (05:48)
  • Introduction (00:23)
  • Configure an Event Log (01:54)
  • Viewing the Event Log (01:08)
  • Writing to the Event Log (02:07)
  • Summary (00:15)
Trace Listener (10:02)
  • Introduction (00:42)
  • Trace Listeners (00:46)
  • Trace Switches (02:19)
  • Configuring Trace Switches (01:06)
  • Trace Listeners Setup (01:10)
  • TraceListener.aspx (03:42)
  • Summary (00:14)
Enable Debugging (15:29)
  • Introduction (00:33)
  • Configuring Debugging (04:20)
  • Configure SQL Debugging (01:10)
  • Debug Stored Procedures (02:14)
  • Setting Breakpoints (03:07)
  • Debug Windows (03:48)
  • Summary (00:15)
Synchronous and Asynchronous (20:16)
  • Introduction (01:12)
  • Synchronous/Asychronous (01:24)
  • Synchronous Web Services (01:43)
  • Run the Web Service (01:44)
  • Asychronous Web Services (01:14)
  • Create the Event Source (00:56)
  • Examine the Code (02:02)
  • Asynchronous Code (00:07)
  • Other Async Parameters (03:03)
  • IAsynchCallback Object (00:51)
  • IAsynchResult Object (04:42)
  • Summary (01:14)
Transfering Binary Information (16:43)
  • Introduction (00:43)
  • HTML for the Page (00:00)
  • Transferring Binary Information (01:10)
  • Web Service Test (02:15)
  • Code for GetImage (02:16)
  • CuteFurryAnimals.aspx (00:52)
  • The Image Web Service (00:09)
  • XML Sent to the Client (01:20)
  • Retrieving a List of Images (02:23)
  • Non-Local Images (00:54)
  • GetPicture.aspx code (03:08)
  • Summary (01:28)

Module 10

Deploying (22:55)
  • Introduction (00:24)
  • The .NET Framework (00:52)
  • Install MDAC (00:38)
  • Install IIS (01:46)
  • IIS Authentication (03:37)
  • Setup ASPNET Account (01:09)
  • Configuration Files (01:15)
  • machine.config (01:25)
  • Creating A Custom Account (00:55)
  • Application-Level Settings (02:42)
  • The appSettings Section (00:59)
  • Database Resources (03:20)
  • The SQL Server sa User (03:27)
  • Summary (00:20)
ASP.NET Architecture (28:20)
  • Introduction (00:24)
  • ASP.NET Architecture (02:31)
  • Assemblies (01:42)
  • ASP.NET App Execution (01:06)
  • Running Multiple Versions (03:00)
  • XCOPY Deployment (01:23)
  • Copy Project Deployment (03:35)
  • A Web Setup Project (01:30)
  • Create a Web Setup Project (02:22)
  • Adding Project Output (01:16)
  • Custom Web Setup Project (05:22)
  • Launch Conditions (03:42)
  • Summary (00:20)
Building a Mobile Web Page (15:09)
  • Introduction (00:57)
  • A Big Problem, and a Solution (00:32)
  • Differing Standards (00:34)
  • What Are You to Do? (00:21)
  • ASP.NET Mobile Controls (00:30)
  • Mobile Controls Features (01:24)
  • Testing Mobile Pages (01:20)
  • How Mobile Pages Work (00:31)
  • How Mobile Pages Browse (01:03)
  • A Simple Mobile Web Page (02:52)
  • Make a Mobile Page Work (00:52)
  • Using an Emulator (01:56)
  • How Did this Code Work? (00:52)
  • Summary (01:20)
Mobile Controls (25:13)
  • Introduction (00:40)
  • Container Controls (00:37)
  • Container Control Sample (01:57)
  • Transfer Controls (03:55)
  • Text Display Controls (01:36)
  • List and Selection Controls (04:52)
  • Object List Control (01:50)
  • Object List Properties (01:46)
  • ItemCommand Event (01:25)
  • Validation Controls (02:57)
  • Misc. Controls (00:52)
  • Calendar Control (01:53)
  • Summary (00:46)

Module 11

ASP.NET Security Overview (13:47)
  • Introduction (00:51)
  • IIS and ASP.NET Security (04:07)
  • Configure ASP.NET Settings (02:37)
  • ASP.NET Authentication (01:23)
  • Configuring IIS Settings (03:53)
  • Configuring Impersonation (00:31)
  • Summary (00:21)
Security Roles (08:30)
  • Introduction (00:21)
  • Configuring Security (04:38)
  • WindowsAuth.sln (03:09)
  • Summary (00:20)
Forms Authentication (21:02)
  • Introduction (00:39)
  • Forms-Based Authentication (01:01)
  • The FormsAuth Project (02:58)
  • Configure Authentication (02:38)
  • Code for FormsAuth.sln (03:29)
  • Hashing Passwords (04:32)
  • HashPassword.aspx Code (01:16)
  • Using XML to Store Info (04:04)
  • Summary (00:20)
Storing Secrets Safely (26:24)
  • Introduction (00:29)
  • Storing Secrets Safely (02:06)
  • CreateWebUserObjects.sql (02:19)
  • Results of Script (01:35)
  • Examine Stored Procedures (03:08)
  • Run the Sample App (01:57)
  • Code behind Default.aspx (03:20)
  • CreateSalt Method Code (02:01)
  • GetRolesString Method Code (01:56)
  • Run the CustomAuth Sample (02:20)
  • GenericPrincipal Object (04:42)
  • Summary (00:25)

Module 12

DataSets (25:57)
  • Introduction (01:56)
  • ASPNET Write Permissions (03:30)
  • Run the Sample App (02:20)
  • Saving XML Schema and Data (01:27)
  • CategoriesProducts Schema (01:20)
  • CategoriesProductsDataNested (01:26)
  • Sequence Tags (06:56)
  • DataRelation: Nested Property (00:45)
  • Edit ProductsXML Code (00:53)
  • Loading XML Schema/Data (02:56)
  • Summary (02:22)
Typed DataSets (29:42)
  • Introduction (02:12)
  • CategoriesProductsData.xsd (03:52)
  • Browser for Typed DataSets (03:02)
  • Object Browser (02:01)
  • Creating a Typed DataSet (00:57)
  • GetChildRows (02:54)
  • Generating a Typed DataSet (02:49)
  • XML Schema Graphically (00:02)
  • Define a Relationship (05:52)
  • Add a Constraint (03:35)
  • Summary (02:21)
A Concurrency Conflict (51:23)
  • Introduction (00:59)
  • A Concurrency Conflict (02:27)
  • Update Criteria (05:25)
  • DataHandling Sample (02:09)
  • Concurrency Conflicts (02:35)
  • Display Concurrency Errors (04:27)
  • lnkSaveClick Event (08:38)
  • Stored Procedure Code (10:41)
  • Handling Data Updates (01:09)
  • RowUpdated Event (03:53)
  • SQLRowUpdatedEventArgs (03:29)
  • dtChanges.HasErrors (02:39)
  • Summary (02:46)