did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9781590590737

Applied Ado.Net: Building Data-Driven Solutions

by ;
  • ISBN13:

    9781590590737

  • ISBN10:

    1590590732

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2003-02-01
  • Publisher: Springer-Verlag New York Inc
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $59.99 Save up to $39.74
  • Buy New
    $58.19
    Add to Cart Free Shipping Icon Free Shipping

    USUALLY SHIPS IN 2-3 BUSINESS DAYS

Supplemental Materials

What is included with this book?

Summary

Applied ADO.NET: Building Data-Driven Solutionsprovides extensive coverage of ADO.NET technology, including ADO.NET internals, namespaces, classes, and interfaces. Whereas most books cover only the SQL and OLE DB data providers, authors Mahesh Chand and David Talbot detail the SQL, OLE DB, and ODBC data providers, as well as the latest additions to ADO.NET, the Oracle, MySQL, and XML .NET data providers. Chand and Talbot also cover the internals of data binding and provide detailed coverage of both Windows Forms and Web Forms data binding and data-bound controls. Because XML plays a major role in .NET development, the authors take a comprehensive look at XML namespaces and classes, and how to integrate both with ADO.NET.The book begins with the basics of ASP.NET and data-bound controls. It then delves into the internals of data binding and shows how to use DataGrid, DataList, and other data-bound controls in real-world applications. Chand and Talbot also discuss the ASP.NET guest book, database XML Web services, and even an online bookstore site development and design process.Advanced developers will learn from the coverage of ADO.NET architecture, related design issues, and how ADO.NET data providers are designed. The authors also show how to create a custom data provider. Event handling, server-side programming, data relations and constraints, Active Directory, messaging, exception and error handling, and the object relational model are other topics covered in detail.

Table of Contents

About the Authors xxi
About the Technical Reviewer xxiii
Acknowledgments xxv
Introduction xxvii
ADO.NET Basics
1(32)
Overview of Microsoft Data Access Technologies
2(5)
ODBC
2(2)
DAO
4(1)
MFC ODBC and DAO Classes
5(1)
RDO
5(1)
OLE DB
5(1)
ADO
6(1)
ADO.NET
6(1)
What Is ADO.NET?
7(1)
Why ADO.NET Was Designed
8(1)
Advantages of ADO.NET
9(2)
Single Object-Oriented API
9(1)
Managed Code
10(1)
XML Support
10(1)
Visual Data Components
11(1)
Performance and Scalability
11(1)
Comparing ADO.NET and ADO
11(2)
Connections and Disconnected Data
11(1)
Recordsets vs. DataSets
12(1)
XML Support
12(1)
Overview of ADO.NET Namespaces and Classes
13(2)
Understanding ADO.NET Components
15(7)
The Connection Object
16(1)
The Command Object
17(2)
The Command Builder
19(1)
The DataAdapter Object
19(1)
DataSet Structure
20(1)
DataSets in DataViews
21(1)
Writing ADO.NET Applications
22(4)
Choosing a .NET Data Provider
22(1)
Adding Namespace References
23(1)
Establishing a Connection
24(1)
Creating a Command or DataAdapter Object
25(1)
Filling Data to a DataSet or DataReader Object
25(1)
Displaying Data
25(1)
Closing the Connection
26(1)
Creating a Simple ADO.NET Application
26(2)
Using a DataSet to Read Data
28(3)
Summary
31(2)
Data Components in Visual Studio .NET
33(40)
Creating an ADO.NET Project
33(1)
Using the Server Explorer
34(3)
Adding a New Connection
35(1)
Managing and Viewing Data
36(1)
Using Visual Data Components
37(14)
Understanding Data Connections
38(2)
Understanding Connection Strings
40(1)
Working with SQL DataAdapters
40(11)
Using DataSet and DataView Components
51(6)
Understanding Typed DataSets in VS .NET
51(3)
Understanding the DataView
54(3)
Using the Data Form Wizard
57(14)
Data Form Wizard: Looking under the Hood
66(1)
Understanding MyDS.xsd
67(1)
Understanding DataForm1.vb
67(4)
Summary
71(2)
ADO.NET in Disconnected Environments
73(62)
Understanding the ADO.NET Architecture
75(1)
Exploring the ADO.NET Class Hierarchy
76(4)
Choosing a Data Provider
80(1)
Understanding ADO.NET Disconnected Classes
81(2)
The System.Data Namespace
81(1)
The System.Data.Common Namespace
82(1)
Working with DataTables
83(37)
The DataColumn
85(9)
The DataRow
94(5)
The DataRelation
99(1)
The DataTable
100(6)
More DataTable Operations
106(9)
The Row and Column Collections
115(2)
The DataRow States and Versions
117(3)
Using DataSet, DataView, and DataViewManager
120(13)
The DataSet: The Heart of ADO.NET
121(6)
Typed and Untyped DataSets
127(1)
The DataView
128(4)
The DataViewManager
132(1)
Summary
133(2)
ADO.NET in Connected Environments
135(74)
Understanding the Generic Data Provider Model
135(2)
Importing a Namespace
137(1)
Exploring the System.SqlClient Namespace
137(2)
The Connection: Connecting to a Data Source
139(11)
Creating a Connection
139(1)
Understanding the Connection Properties and Methods
140(2)
Opening and Closing a Connection
142(3)
Understanding Connection Pooling
145(4)
Using the CreateCommand and ChangeDatabase Methods
149(1)
The Command: Executing SQL Statements
150(10)
Creating a Command Object
151(2)
Creating and Using OleDbCommand
153(1)
Using the CommandType Enumeration
154(1)
Calling a Stored Procedure
155(2)
Using TableDirect
157(1)
Executing a Command
158(2)
Using Other Command Methods
160(1)
The DataReader: Walking through the Data
160(6)
Initializing a DataReader
161(1)
Understanding DataReader Properties and Methods
161(1)
Reading with the DataReader
162(2)
Interpreting Batches of Queries
164(1)
Understanding Command Behaviors
165(1)
The DataAdapter: Adapting to Your Environment
166(15)
Constructing a DataAdapter Object
166(2)
Understanding DataAdapter Properties
168(2)
Understanding DataAdapter Methods
170(1)
Filling the DataSet
170(2)
Adding a DataTable to a DataSet
172(1)
Looking at a DataAdapter Example
172(3)
Filling the DataAdapter from a Recordset
175(1)
Updating the Database Using the Update Method
176(2)
Table and Column Mapping
178(3)
CommandBuilder: Easing the Work of Programmers
181(3)
Creating a CommandBuilder Object
182(1)
Using SqlCommandBuilder Members
182(1)
Using SqlCommandBuilder
182(2)
Staying within the Parameters
184(4)
The DataSet in Connected Environments
188(6)
Filling a DataSet from Multiple Tables
188(2)
Using a SQL Statement to Read Data from Two or More Tables
190(1)
Adding, Updating, and Deleting Data through the DataSet
190(1)
Accepting and Rejecting Changes through the DataSet
191(1)
Saving Changed Data Only
192(1)
Using a DataSet vs. Using a DataReader
193(1)
Fetching Data Based on Wildcard Characters
194(1)
The DataView in Connected Environments
194(14)
Creating Multiple Views
195(5)
Using Transactions in ADO.NET
200(1)
Using Concurrency in ADO.NET
201(3)
Understanding Rollback, Commit, and Savepoints
204(2)
Executing Batches
206(2)
Summary
208(1)
Handling ADO.NET Events
209(24)
Working with Connection Events
211(4)
Working with DataAdapter Events
215(5)
Working with DataSet Events
220(1)
Working with DataTable Events
221(5)
Working with XmlDataDocument Events
226(3)
Working with DataView and DataViewManager Events
229(2)
Summary
231(2)
Integrating XML with ADO.NET
233(54)
Understanding Microsoft .NET and XML
233(5)
Using the System.Xml Namespace
234(1)
Using the System.Xml.Schema Namespace
235(1)
Using the System.Xml.Serialization Namespace
236(1)
Using the System.Xml.XPath Namespace
236(1)
Using the System.Xml.Xsl Namespace
236(1)
Using the Document Object Model Interfaces
237(1)
Looking at the XML .NET Architecture
237(1)
Adding a System.Xml Namespace Reference
238(1)
Reading XML
238(8)
Getting Node Information
239(3)
Moving to a Content Node
242(1)
Using the GetAttributes of a Node
243(1)
Searching for a Node
244(1)
Closing the Document
245(1)
Understanding the XmlWriter Classes
246(5)
Setting XmlWriter Properties
247(1)
Writing XML Items
247(1)
Seeing XmlWriter in Action
248(2)
Using the Close Method
250(1)
Using the XmlConvert Class
251(1)
Understanding the DOM Implementation
251(9)
Using the XmlNode Class
252(1)
Using the XmlDocument Class
252(1)
Saving a Document
253(1)
Using the XmlDocumentFragment Class
253(1)
Using the XmlElement Class
254(5)
Adding Attributes to a Node
259(1)
Understanding Transformation and XSLT
260(2)
Using the Transform Method
261(1)
Looking at an Example
261(1)
Using ADO.NET and XML Together
262(10)
Reading XML Using a DataSet
262(2)
Writing XML Using a DataSet
264(3)
Using XmlDataDocument and XML
267(3)
Displaying XML Data in a DataSet Format
270(1)
Saving Data from a DataSet to XML
271(1)
XmlDataDocument: Looking under the Hood
272(1)
Navigating in XML
272(5)
Using the XPathNavigator Class
273(1)
Using XPathNavigator Move Methods
274(2)
Searching Using XPathNavigator
276(1)
Working with Schemas
277(9)
Generating a New Schema
277(6)
Adding Schema from a Database Objects
283(2)
Generating a Typed DataSet from a Schema
285(1)
Summary
286(1)
Data Binding and Windows Forms Data-Bound Controls
287(58)
Understanding Data Binding
287(14)
Using the Binding Class
288(5)
Understanding the BindingManagerBase Functionality
293(3)
Understanding BindingContext
296(1)
Building a Record Navigation System
296(5)
Working with Complex Data-Bound Controls
301(6)
The Role of Control Class in Data Binding
301(1)
Using the ListControl Class
301(1)
ListControl DataBinding-Related Events
302(2)
Data Binding in ComboBox and ListBox Controls
304(2)
Data Binding in a DataGrid Control
306(1)
Deleting Data Binding
307(1)
The DataGrid: Super Data-Bound Control
307(37)
Understanding the DataGrid Class Members
309(3)
Exploring the DataGrid Helper Objects
312(1)
Understanding the DataGrid and DataGrid Column Styles
313(8)
Seeing DataGridTableStyle and DataGridColumnStyle in Action
321(3)
Seeing HitTest in Action
324(10)
Implementing Custom Sorting in a DataGrid
334(1)
Building a DataGrid Record Navigation System
335(3)
Implementing Search in a DataGrid
338(4)
Inserting, Updating, and Deleting Data through DataGrids
342(2)
Summary
344(1)
Constraints and Data Relations
345(14)
Understanding Constraints
345(8)
Implementing the Constraint Classes
346(1)
Implementing the ForeignKeyConstraint Class
346(7)
Understanding Data Relations
353(1)
Understanding the DataRelation and DataRelationCollection Objects
354(4)
Summary
358(1)
ADO.NET Exception Handling
359(16)
Why Use Exception Handling?
360(5)
Using Try...Catch Statements
361(1)
Using Try...Catch...Finally Statements
362(1)
Nesting Try...Catch Statements
363(1)
Using Try with Multiple Catch Statements
363(1)
Defining Custom Filters and Error Messages
364(1)
Understanding the Exception Classes
365(1)
Using the Exception Class: Mother of All Exceptions
365(1)
Understanding Other Exception Classes
366(1)
Exception Handling in ADO.NET
366(8)
Recognizing SQL Server 2000 Errors
368(2)
Using SQL Server Error Logs
370(1)
Using the SqlException Class
371(2)
Using the SqlError and SqlErrorCollection Classes
373(1)
Summary
374(1)
Working with the ODBC .NET Data Provider
375(18)
Using the ODBC .NET Data Provider
375(3)
Installing the ODBC .NET Data Provider
376(1)
Understanding the ODBC.NET Data Provider
377(1)
Accessing Access Databases
378(2)
Accessing MySOL Databases
380(1)
Accessing MySOL Databases
381(1)
Accessing Text File Databases
382(7)
Exporting an Access Table to a Text File
383(2)
Accessing a Text File
385(4)
Accessing Excel Databases
389(2)
Implementing Two .NET 1.1 Updates
391(1)
Summary
391(2)
Stored Procedures and Views
393(20)
Working with Stored Procedures
393(12)
Creating a Stored Procedure
393(4)
Executing a Stored Procedure from VS .NET
397(2)
Executing a Stored Procedure Programmatically
399(6)
Understanding SOL Injection
405(1)
Working with Views
406(5)
Creating a View
406(3)
Executing a View from VS .NET
409(1)
Retrieving Data from a View Programmatically
409(2)
Filling a DataSet from Multiple Views
411(1)
Summary
411(2)
Oracle, SQLXML, and Other .NET Data Providers
413(24)
Using Oracle .NET Data Providers
413(13)
Adding a Reference to the Oracle .NET Data Provider
415(1)
Using the Oracle .NET Data Provider Classes
416(10)
Using the SOLXML and SOL XML .NET Data Providers
426(9)
Using the FOR XML Keyword
427(1)
Using the SqlXmlAdapter Object
428(1)
Using the SqlXmlParameter Object
429(1)
Using the SqlXmlCommand Object
430(5)
Using a MySOL Database and the .NET Data Provider
435(1)
Summary
435(2)
Developing a Custom Data Provider
437(28)
Overview of the Data Provider Interfaces
438(8)
Understanding the Connection Object
439(1)
Understanding the Command Object
440(1)
Understanding the Reader Object
441(2)
Understanding the Adapter Object
443(3)
Building a Custom Data Provider
446(18)
Creating the PipedDataConnection Object
446(3)
Creating the PipedDataCommand Object
449(4)
Creating the PipedDataReader Object
453(7)
Creating the PipedDataAdapter Object
460(2)
Testing the PipedDataProvider Application
462(2)
Debugging Your Custom Data Provider
464(1)
Summary
464(1)
Developing Database Web Applications Using ASP.NET
465(52)
Introducing ASP.NET
465(3)
ASP.NET Platform Requirements
466(1)
ASP.NET Language Support
466(1)
Installing ASP.NET
466(1)
ASP.NET Editors
466(1)
ASP.NET: An Evolution of ASP
467(1)
Web Forms and Web Services
468(1)
Developing Your First ASP.NET Web Application
468(10)
Creating a Web Application Project
469(3)
Adding Web Controls to a Web Form
472(2)
Setting Control Properties
474(1)
Using Document Outline
475(2)
Writing Code on the Button Click Event Handler
477(1)
Creating Your First ADO.NET Web Application
478(2)
Using ASP.NET Server-Side Controls
480(7)
HTML Server Controls
481(1)
Validation Controls
482(1)
User Controls
483(1)
Server Controls and the .NET Framework Library
483(2)
Why Are Web Forms Controls Called Server-Side Controls?
485(1)
Adding Server-Side Controls to a Web Form
485(2)
Understanding Data Binding in ASP.NET
487(20)
Data-Bound Controls
488(2)
DataGrid and DataList Controls
490(9)
Paging in the DataGrid Control
499(1)
Enabling Paging Programmatically
500(2)
Adding, Editing, and Deleting Data in Web Forms
502(3)
Adding Data
505(1)
Updating Data
506(1)
Deleting Data
507(1)
Creating a Guest Book in ASP.NET
507(9)
Default Web Form: MyGuestBook.aspx
508(3)
Adding Forms to the Guest Book
511(3)
Compiling and Running the Guest Book Project
514(2)
Summary
516(1)
Using ADO.NET in XML Web Services
517(20)
Exploring Web Services and the .NET Framework Library
518(1)
Creating a Web Service in VS .NET
518(3)
Testing Your Web Service
521(3)
Creating the Web Service Consumer
524(11)
Adding Data to a Database Through a Web Service
529(5)
Adding More Functionality to the Web Service
534(1)
Summary
535(2)
ASP.NET Server Controls and Data Binding
537(72)
Data Binding in Web Forms, Revisited
537(3)
Read-Only Data Binding
537(1)
Simple and Complex Data Binding
538(1)
The Roles of the Control and Page Classes in Data Binding
539(1)
Data Binding in Simple Web Forms Controls
540(22)
Using the Button Control
540(2)
Using the Calendar Control
542(4)
Understanding Web Server Control Templates
546(6)
Using the Repeater Control
552(3)
Understanding the Role of the ListControl Class
555(1)
Using the ListBox Control
556(2)
Using the DropDownList Control
558(2)
Data Binding in Other Simple Controls
560(2)
Data Binding in Complex Web Forms Controls
562(46)
Understanding the BaseDataList Class
562(1)
Using the DataKeyCollection Class
563(1)
Using the DataList Web Server Control
564(18)
Using the DataGrid Web Server Control
582(26)
Summary
608(1)
Building Real-World Web Applications
609(28)
Introducing the Job Board Application Specifications
609(1)
Understanding the Database Schema
610(1)
Developing the Online Job Board Application
611(24)
Creating the Login.aspx Page
612(3)
Creating the Register.aspx Page
615(2)
Creating the Contact.aspx Page
617(1)
Creating the PostJob.aspx Page
618(2)
Creating the PostResume.aspx Page
620(3)
Creating the DisplayData.aspx and Resumes.aspx Pages
623(9)
Creating the dnjHeader.aspx Page
632(1)
Running the Application
633(2)
Improving and Modifying the Application
635(1)
Summary
636(1)
Object-Relational Mapping in .NET
637(38)
Why Not Just Use a DataSet?
638(1)
Understanding Object Databases
639(1)
Why Object Relational Mapping?
640(1)
Creating the Basic Design of the Video Store Application
640(25)
Understanding the Basic Architecture
641(1)
Creating the Database Design of the Video Store
641(2)
Creating the Data Object
643(1)
Creating the Mapped Object
644(4)
Creating the Data Access Component
648(4)
Building the VideoTape Test Case
652(2)
Using the User Component
654(5)
Creating the User Test Case
659(2)
Managing Dependencies
661(2)
Creating the Check In/Check Out Component
663(1)
Seeing How It Works
664(1)
Making Design Tradeoffs
665(8)
Understanding Logic in Stored Procedures
665(1)
Understanding Component Isolation
666(1)
Creating a Workaround on Part of the Problem
667(3)
Creating the VideoCheckInCheckOut Test Case
670(3)
Summary
673(2)
Mapped Objects: Performance Considerations and Data Binding
675(34)
Using Data Binding and Mapped Objects
675(9)
Directly Accessing a Bound Object's Properties
678(2)
Using Logic with Bound Objects
680(4)
Understanding Problematic Master-Detail Relationships
684(10)
Working with Highly Nested Structures
685(6)
Working with a Much Larger Tree
691(2)
A Final Note on Tree Optimization
693(1)
Working with Large Master-Detail Relationships
694(12)
Implementing Lazy Loading
695(5)
Implementing an Incremental Lazy Loading Scheme
700(5)
Loading the Detail When the Master Is Loaded
705(1)
Using a Near-Zero-Impact Caching Mechanism
706(2)
Summary
708(1)
COM Interoperability and ADO.NET
709(16)
Exploring the .NET Interop Tools
710(2)
Using Visual Studio .NET
710(1)
Using the Type Library Importer and Exporter (Tlbimp.exe)
711(1)
Using the Type Library Exporter (Tlbexp.exe)
712(1)
Using the ADO Recordset in ADO.NET
712(4)
Using ADOX with ADO.NET
716(2)
Accessing OLAP Server Data with ADO.NET
718(6)
Summary
724(1)
Messaging
725(28)
Introducing Types of Queues
725(1)
Using User Queues
726(1)
Using System Queues
726(1)
Installing Message Queuing
726(1)
Using the System.Messaging Namespace
727(2)
Working with Message Queues
729(7)
Using the MessageQueue Properties
729(2)
Managing Queues Using VS .NET
731(1)
Retrieving Available Queues
732(2)
Filtering Queues Using MessageQueueCriteria
734(1)
Creating and Deleting Message Queues Programmatically
735(1)
Creating a Sample Application
736(9)
Creating a MessageQueue Instance
738(1)
Setting a Queue's Path
739(1)
Sending and Receiving Messages
740(1)
Walking Through Simple Messaging Application
741(4)
Working with Messages
745(2)
Creating and Removing Messages
745(1)
Setting Queue and Message Priorities
746(1)
Understanding Transactional Messaging
747(3)
Using the MessageQueueTransaction Class
747(1)
Creating Transactional Queues
748(1)
Sending and Receiving Transactional Messages
748(2)
Encrypting Messages
750(2)
Summary
752(1)
SQL Server and ADO.NET: Notes on Performance
753(26)
Improving SOL Server Performance
753(16)
Using Indexes
753(4)
Choosing Which Columns to Index
757(1)
Understanding the SQL Server Profiler
758(2)
Optimizing Automatically with the SQL Server Profiler
760(2)
Optimizing Your Transact-SQL Queries for Performance
762(3)
Avoiding Excessive Stored Procedure Recompilation
765(1)
Avoiding Locks
766(1)
Designing Your Tables for Optimal Performance
766(1)
Checking the Size of Database Pages
767(1)
Understanding Denormalization
768(1)
Understanding the Dangers of Database Design Slippage
768(1)
Understanding ADO.NET Performance Issues and Using Best Practices
769(9)
Selecting Data Providers
769(1)
Writing a Generic Data Access Component
770(5)
Choosing a Development Mode: Designer vs. Manual
775(1)
Retrieving Data: DataReader, XmlReader, and DataSet
775(1)
Updating a Data Source: Command vs. DataSet
776(1)
Saving Data and Using GetChanges
777(1)
Retrieving Data with the SELECT Statement
777(1)
Using Stored Procedures
777(1)
Using Connection Strings and Pooling
777(1)
Summary
778(1)
Appendix A Relational Databases: Some Basic Concepts
779(14)
Understanding Normalization
780(6)
First Normal Form (1NF)
780(2)
Second Normal Form (2NF)
782(2)
Third Normal Form (3NF)
784(1)
Boyce-Codd Normal Form (BCNF)
785(1)
Fourth Normal Form (4NF)
785(1)
Fifth Normal Form (5NF or PJ/NF)
786(1)
Introducing Sets, Cursors, and ADO.NET
786(2)
Using Locking
788(4)
Isolation Levels
788(2)
Locking Modes
790(2)
Summary
792(1)
Appendix B Commonly Used SOL Statements
793(18)
Understanding SOL References
793(14)
Using the SELECT Statement
796(6)
Using the UPDATE Statement
802(1)
Using the DELETE Statement
802(1)
Using the CREATE TABLE Statement
803(1)
Using the DROP TABLE Statement
803(1)
Using the TRUNCATE TABLE Statement
804(1)
Using the INSERT Statement
805(1)
Using Joins and Aliases
806(1)
Understanding Views
807(2)
Using SOL Server's SELECT...FOR XML Clause
809(1)
Summary
810(1)
Appendix C ADO.NET Frequently Asked Questions
811(36)
Summary
845(2)
Index 847

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program