Save Image Button Click Event Handler (code listing), 835–837
Save method, 253
Savepoints
defined, 198
Rollback and Commit, 204–206
in Sql Data Provider, Using (code listing), 205–206
Saving
data and using GetChanges, 777
DataSet Data to XML Document (code listing), 271–272
DataTable in XML Documents (code listing), 114
documents (DOM), 253
Only Modified Rows of DataSet (code listing), 193
Updated Data in a Data Source From a DataGrid Control (code listing), 343–344
scalability and performance (ADO.NET), 11
schemas
database, defined, 779
XML. See under XML integration with ADO.NET
Search Button Click Event Handler (code listing), 341–342
SearchButtonClick Method (code listing), 112–113
searching
a DataGrid, 338–342
using DataTable and DataView, 339–341
using SELECT statement, 339
using XPathNavigator, 276–277
Second Normal Form (2 NF), 782–784
SELECT DISTINCT and duplicates, 827–828
SELECT statements
Executing Using OleDbDataAdapter (code listing), 167–168
retrieving data with, 777
searching with, 339
SELECT TOP SQL statement, paging with, 816
SELECT...FOR XML clauses, 809–810
SELECT...LIKE SQL statement, 194
using, 796–802
SelectCommand, 184
Selecting Distinct Rows From DataBase Table (code listing), 827–828
SelectVideosCheckedIn Query, Optimized Version (code listing), 763–764
SelectVideosCheckedOutToUser (code listing), 665
Send Message Click Event Handler (code listing), 618
Send method (MessageQueue), 740–741
Sending and Receiving Transactional Messages (code listing), 749–750
Sending Messages to a Queue (code listing), 743
serialization, defined, 236
server controls in ASP.NET. See ASP.NET server controls and data binding
server cubes, OLAP, 718
Server Explorer, 34–36
adding new connection, 35
available views, 408
creating DataAdapters with, 41
expanding databases with, 54
managing and viewing data, 36
server-side controls, ASP.NET. See ASP.NET server-side controls
service components (OLE DB), 5–6
session pooling, 146
severity level errors, 368–369
simple and complex data binding, 288, 538
Simple Exception Handling Block (code listing), 361
simple Web Forms controls, data binding in, 540–562
Button control, 540–541
Calendar control, 542–545
DropDownList control, 558–560
ListBox control, 556–558
ListControl class, 555–556
Repeater control, 552–555
templates, Web server control. See templates, Web server control templates
TextBox, Button and Image controls, 560–562
single-item data-bound controls, 488
single object-oriented API, 9–10
Skip Method, Using (code listing), 244
SOAP (Simple Object Access Protocol), 517–518
Solution Explorer, 525, 527
sorting
custom in DataGrid, 334
Data Using Select Method (code listing), 113–114
in a DataGrid Control (code listing), 606–607
a DataGrid Control's Columns (code listing), 334
default sorting order, 605
and searching in DataGrid, 605–607
Sort property (DataView), 131
sp_executesql to Execute Database Query (code listing), 765
SQL Server and ADO.NET, 753–778
ADO.NET performance issues, 769–777
Connection strings and pooling, 777
data providers, selecting, 769–770
designer vs. manual development, 775
generic data access components, writing, 770–775
GetChanges method and saving data, 777
retrieving data, 775–777
stored procedures vs. SQL commands, 777
updating data sources, 776
code listings
Generic Data Access Class, 771–773
Generic Data Access Class, Using, 774–775
Query from SelectVideosCheckedIn, Not Optimized, 762–763
SelectVideosCheckedIn Query, Optimized Version, 763–764
sp_executesql to Execute a Database Query, 765
User-Defined Variables, 773–774
SQL Server performance, improving, 753–769
columns, selecting for indexing, 757–758
database design slippage, dangers of, 768–769
database pages, checking size of, 767–768
denormalization, 768
indexes, using, 753–757
locks, avoiding, 766
SQL Server Profiler, 758–762
stored procedure recompilation, 765
tables, optimal design of, 766–767
Transact-SQL queries, optimizing, 762–764
SQL (Structured Query Language)
Access Group (SAG), 3
commands, executing (Oracle .NET data provider), 418–421
data provider
classes, 138
Sql Data Provider, Using Savepoints in (code listing), 205–206
transaction methods in, 204–205
DataAdapters, 40–51
Data Adapter Configuration Wizard. See Data Adapter Configuration Wizard
Server Explorer, creating DataAdapters with, 41
injection, 405–406, 810
queries
batches of, 164
defined, 7
executing, 504
SQL INSERT, UPDATE, DELETE Queries, Constructing (code listing), 421
types, selecting, 42–43
SQL Server
Analysis Server in 2000, 718
Enterprise Manager, 84, 393
error logs, 370
errors, recognizing, 368–369
INSERT command, 186
Profiler, 758–762
Provider Components, Added (code listing), 48–49
Reading Data From (code listing), 371–373
storing data in, 757
version 2000, 430, 666
SQL statements
to add and remove constraints, 352–353
ALTER TABLE, 353
commonly used, 793–810
CREATE TABLE, 353, 803
DELETE, 534, 802–803
DROP TABLE, 803–804
executing. See under Command objects generating, 43
INSERT, 805
inserting dates in, 814
joins and aliases, 806–807
reading from two or more tables with, 190
SELECT, 796–802
SELECT...FOR XML clauses, 809–810
stored procedures and, 398
TRUNCATE TABLE, 804
UPDATE, 534, 802
views and, 807–809
SqlCommand Properties, Setting and Getting (code listing), 151
SqlCommand to Read Data from Database (code listing), 153
SqlCommandBuilder, 182–184
SqlCommandBuilder Class, Creating and Using (code listing), 183–184
SqlConnection class, 38, 139
SqlConnection objects, creating (code listing), 139–140
SqlDataAdapter
class properties, 168–169
Event Handler Bodies (code listing), 217
Instances, Creating (code listing), 167
Properties, Using (code listing), 169
SqlError and SqlErrorCollection classes, 373–374
SqlException class, 371–373
SqlParameter
class properties, 185–187
Creating (code listing), 177
SqlTransaction, Executing Multiple SQL Queries Using (code listing), 207–208
SQLXML and SQL XML .NET data providers, 426–435
code listings
SqlXmlAdapter, Using, 429
SqlXmlCommand to Execute Commands, 433–435
fundamentals, 426–427
SqlXmlAdapter object, 428–429
SqlXmlCommand object, 430–435
applied, 432–435
methods, 430–431
properties, 431–432
SqlXmlParameter object, 429
FOR XML keyword, 427–428
StateChange event, 211–212
static cursors, 786
stored procedures
calling, 155–157
code listings
AddCat1 Stored Procedure, 404
Calling Stored Procedure Using SqlCommand, 155
Executing and Reading Results of Stored Procedure, 156–157
Executing Stored Procedures with Output Parameter, 404–405
Executing the mySP Stored Procedure Using SQL Data Provider, 400–401
GetBlockedCategory Stored Procedure, 692–693
Incremental Lazy Loading Stored Procedure, 701
Parameters, Using in Stored Procedures, 402–404
Sales by Year Stored Procedure in Northwind Database (code listing), 156
Stored Procedure Results Output, Adding Subtotal Listing to, 157
creating, 393–397
executing from VS .NET, 397–399
executing programmatically, 399–405
logic in, 665–666
recompilation, avoiding excessive, 765
vs. SQL commands, 777
SQL injection, 405–406
and views, 393–411
storing data in SQL Server, 757
strings, connection. See connection strings
structured exceptions (VB .NET), 359
styles, setting DataGrid, 584–586
stylesheets, 260–261
SXPD add-on, 426
system queues, 725–726
system stored procedures, 393
System.Data Exception classes, 366–368
System.Data namespace, 13, 77, 81–82, 138
System.Data.Common namespace, 77–78, 82–83, 138
System.Data.OleDb namespace, 78–79
System.Data.OracleClient namespace, 415
System.Data.SqlClient namespace, 214
System.Data.SqlTypes namespace, 78–79
SystemException class, 366
System.Messaging namespace, 727–728
System.Runtime.InteropServices namespace, 710
System.SqlClient namespace, 137–139
System.Web namespace, 483–484
System.Web.Services namespace, 485, 518
System.Web.UI namespace, 484, 539, 540
System.Web.UI.HtmlControls namespace, 484
System.Web.UI.WebControls namespace, 484
System.Xml namespace, 226, 234–235, 238, 261, 431
System.Xml.Schema namespace, 235
System.Xml.Serialization namespace, 236
System.Xml.XPath namespace, 236
System.Xml.Xsl namespace, 236