BUY THIS BOOK
Add to Cart

Print Book $54.99


Add to Cart

Print+PDF $71.49

Add to Cart

PDF $43.99

Safari Books Online

What is this?

Add to UK Cart

Print Book £34.50

What is this?

Looking to Reprint or License this content?


ADO.NET 3.5 Cookbook
ADO.NET 3.5 Cookbook, Second Edition By Bill Hamilton
March 2008
Pages: 980

Cover | Table of Contents | Colophon


Index


[ Symbols ], 
[ A ], 
[ B ], 
[ C ], 
[ D ], 
[ E ], 
[ F ], 
[ G ], 
[ H ], 
[ I ], 
[ J ], 
[ K ], 
[ L ], 
[ M ], 
[ N ], 
[ O ], 
[ P ], 
[ Q ], 
[ R ], 
[ S ], 
[ T ], 
[ U ], 
[ V ], 
[ W ], 
[ X ], 
[ Z ], 


Symbols[ Top ]
&& (AND) operator, 213
@@IDENTITY function, 294
@@ROWCOUNT function, 165
@@ROWCOUNT variable, 168
@@TRANCOUNT function, 460
|| (OR) operator, 213

A[ Top ]
absolute expiration (cached items), 689
AcceptChanges( ) method, 257
Access, 1, 242
      connecting to database from ASP.NET, 35-38
      connection to a database, 32
      connection to password-protected database, 33
      creating a new database, 814
      getting an AutoNumber value from, 294-297
      listing tables in a database, 816-819
      ODBC Driver (Jet), 31
Access Database Engine OLE DB provider, 224, 228
      DELETE operations and, 229
AccessAutoNumberValue program (example), 295-297
AccessDeletedDataRows (example), 254
AccessTypedDS.xsd file (example), 152
AccessValuesStronglyTypedDataSet program (example), 153-155
AccessValuesStronglyTypedDataSetXsd program (example), 151
ACE (Access Database Engine) OLE DB driver, 40, 305
      connecting to a text file, 41
      version 12.0 or later, 297
Action property, DataRowChangingEventArgs, 319
ActiveX Database Objects Extensions for DDL and Security (ADOX), 765, 814
      listing Access database tables, 817-819
ActiveXMessageFormatter, 234
ad hoc connector names, 235, 243
      use in SQL statements, 241
Ad Hoc Remote Queries (Surface Area Configuration), 242
ADD CONSTRAINT statement, 803
Add( ) method
      Cache class, 689
      filling a ComboBox control, 580
      PropertyCollection class, 747
AddAggregateChildColumnDataTable program (example), 110
AddCalculatedColumnDataTable program (example), 84
AddExistingConstraints program (example), 172
AddNew( ) method (DataRowView), 361
AddParentChildAutoincrementKey program (example), 315
AddParentColumnDataTable program (example), 108
AddRecordGuidPrimaryKey program (example), 317
AddressExpand.xml file (example), 702
AddressExpand.xsd file (example), 701
AddTableSqlServerDatabase (example), 796
ADO Recordset schema, converting, 428
ADO.NET, 1
      LINQ to ADO.NET, 212
      overview, 1-3
      table valued parameters, 922
      version 1.1, provider-independent code, 763
      version 2.0, xiv, 874-911
            data provider enhancements, 881-909
            data provider enumeration and factories, 874-881
            disconnected class enhancements, 909-911
      version 3.5, xiv, 911-922
            LINQ, 911-922
adodb assembly, 429
AdoDotNet35Cookbook database, xix
AdventureWorks database, xix
      Database Connection, 126
aggregate column summarizing related child records, 110-113
aggregate functions, 113
      COUNT, 165, 168
      user-defined (see UDA functions)
AllowDBNull property, 173
ALTER TABLE statement, 803
AND (&&) operator, 213
AnnotatedDepartment class, 127
AnnotateStronglyTypedDataSet program (example), 126-128
annotations
      controlling names in strongly typed DataSet, 126-130
      replacing null values in strongly typed DataSet, 131
application configuration files, 7
APPLY operator, 283
      syntax, 284
ApplyDefaultSort property (DataView), 252
appSettings element, 4
arrays
      accessing values in DataRow array, 117-119
      converting between DataRow array and DataTable object, 113-117
      exporting query results to, 422-426
      querying a string array using LINQ, 213
ascending clause, 213
ASP.NET
      authentication, 37
      Cache class, 688
      connecting to Access, 35-38
      connection to SQL Server using integrated security, 21
      Image control, filling from a database field, 566-569
      web applications, configuration files, 7
assemblies, T-SQL statements to create and manage, 832
associating transactions, 461
associations (LINQ), 222
asymmetric key algorithms, 413
AsyncDataReaderCallback (example), 675
AsyncDataReaderPolling (example), 677
AsyncFillDataSet program (example), 679-681
asynchronous processing, 658, 881-889
      background execution of long-running tasks, 666
      canceling an asynchronous query, 683-685
      creating a DataReader, 675-678
      executing simultaneous SQL statements, 669-674
      filling a DataSet, 679-682
      handling callbacks, 882
      IAsyncResult interface, 668, 882
      multiple simultaneous asynchronous operations, 886-889
      polling IAsyncResult interface, 884-886
      querying with message queuing, 229-234
      SQL statement, executing asynchronously, 662-669
      SqlCommand class methods, 666-668, 881
Asynchronous Processing=true attribute, 882
AsynchronousQueryMSMQ program (example), 230-233
AsynchronousUpdateMSMQ program (example), 352-355
AsyncState property (IAsyncResult), 663
AsyncWaitHandle property, 886
AsyncWaitHandle property (IAsyncResult), 671
attributes (custom) for CLR routines, 835
authentication, 37
      connecting to a data source, 134
authentication modes, SQL Server connections, 22
AutoIncrement columns, 285
      using without conflicts, 286-288
AutoIncrement property, 173
      DataColumn class, 93, 94, 107
autoincrementing keys, adding parent/child rows, 314-317
AutoIncrementSeed property, 286, 314, 743
      DataColumn class, 93, 94, 107
      set to -1, 292
AutoIncrementStep property, 286, 314, 743
      DataColumn class, 93, 94, 107
      set to -1, 292
AutoIncrementWithoutConflict program (example), 287
automatic transactions, 441
AutoNumber value, getting from Access, 294-297
AutoRefresh table (example), 744
AutoRefreshChange table (example), 748
AutoRefreshDataTable program (example), 744-746
AutoRefreshDataTableChange program (example), 749
AutoReset property, 747
AvoidReferentialIntegrityProblems program (example), 471-479

B[ Top ]
batch command, 171
      building a DataReader, 172
batch processing
      SQL queries, loading a hierarchical DataSet, 177
      updates, performing with DataAdapter, 734-743
      using DataAdapter, 910
batch queries
      Oracle stored procedures and, 189
      returning multiple result sets, 168-172
BatchUpdateManual program (example), 739-742
BEGIN TRAN command, 460
Begin( ) method (OleDbTransaction), 455
Begin/End asynchronous method pairs, SqlCommand, 668
BeginEdit( ) method (DataRowView), 361
BeginExecuteNonQuery( ) method
      Command class, 662, 664, 669, 671
      SqlCommand class, 667, 886
BeginExecuteReader( ) method
      Command class, 675
      SqlCommand class, 667, 886
BeginExecuteXmlReader( ) method (SqlCommand), 668, 886
BeginInvoke( ) method, 682
BeginLoadData( ) method (DataTable), 716, 719
BeginTransaction( ) method
      Command class, 513
      Connection class, 451
Binary Large Objects (see BLOBs)
BinaryFormatter class, 396
BinaryMessageFormatter, 234
BinaryWrite( ) method (HttpResponse), 569
BindDataGrid( ) method, 552
BindDataList( ) method, 537
binding, 519
      complex data binding, 519
      data binding properties, 527
      data to a Windows Forms control, 578-580
      field to Web Forms control, 520-524
      query results to DataGrid control, 548-557
      RadioButton controls to Windows Forms data field, 597-603
      result set columns to Web Forms control, 524-527
      result set to a DataList control, 534-543
      result set to FormView control, 557-561
      result set to GridView control, 543-548
      result set to Web Forms DetailsView control, 527-530
      result set to Web Forms Repeater control, 530-534
      simple data binding, 519
      Web Forms control to image from a database, 566-569
BindingContext class, 577
BindingManagerBase class, 577
BindingNavigator controls, 587-590, 598
BindingSource controls, 587-590, 598
      binding for child and parent tables for DataGridView controls, 593
      creating for parent and detail DataGridView controls, 590
      members for accessing and manipulating data, 589
      PositionChanged event, 598, 602
BindRadioButton program (example), 597
BindWebFormDataList program (example), 535-541
BindWebFormDetailsView program (example), 527-529
BindWebFormFormView program (example), 558-560
BindWebFormGridView program (example), 543-546
BindWebFormSimpleControl program (example), 524-526, 566
BindWindowsFormBindingNavigator program (example), 587
BindWindowsFormDataGridView program (example), 581-583
BindWindowsFormSimpleControl program (example), 579-580
BLOBs (Binary Large Objects), 659
      conversion to byte arrays, 733
Browser service (SQL Server), 766
BufferedStream class, 396
BuildConnectionString (example), 11
BuildDataSetProgrammaticallyForm (example), 104-106
bulk copy, 699-706, 895-900
bulk loading, 695-699
BulkCopyDataReader program (example), 700
BulkCopyXmlFile (example), 703
BulkLoad program (example), 697
business rules, enforcing with column expressions, 481-485
button click events, DataList control, 543

C[ Top ]
C#, xix
      aggregate functions, 110
      from clause, 213
      group clause, 213
      join clause, 213
      names, 74
      null, 192
      object model, 216, 918
      orderby clause, 213
      out keyword, 843
      select clause, 213
      variables, 212
      version 3.0, extensions implementing LINQ, 211
      where clause, 213
caching, 658, 685-689
      Cache class, 688
      client-side, 688
      server-side, 688
calculated columns (see expression columns)
callbacks, 881
      AsyncDataReaderCallback (example), 675
      handling, 882
Cancel( ) method (Command), 683, 685
CancelCommand program (example), 683-685
CancelEdit( ) method (DataRowView), 360
CaptureDataChanges program (example), 368-370
CaptureDataChanges table (example), 366
CAS (code access security), 830
CAST function, 857
catalog views, 334, 492, 764
      categories of, 775
      information schema, 494
      querying relationships between DataSet tables, 804-808
      reconstructing relationships between DataSet tables, 812
      retrieving constraints information in a database, 492
      SMO (SQL Server Management Objects), 490
      SQL Server Management Objects (SMO), 485
      sys.columns, 788
      sys.default_constraints, 782
catch blocks, error-checking, 456
catching errors, stored procedures, 202
Category.txt file, 306
      schema.ini file, 224
Category.xlsx, 226
CDC (Change Data Capture), SQL Server, 286, 370
      change table, 371
ChangeConnectionDatabase program (example), 44
ChangeDatabase( ) method (IDbConnection), 44, 45
ChangePassword( ) method (SqlConnection), 828, 906
chapters (SQL Server), 266
character encodings
      Encoding enumeration, 612
      UTF-8, 437
      XML file, used by XmlTextWriter, 617
character set, specifying for a text file, 226
Check class, 492
CheckCollection class, 492
CheckConcurrencyViolation program (example), 497-500
CheckedChanged event, 603
CHECKSUM calculation, 269
Child prefix in column name, 112
Child table (example), 465
ChildAutoincrementKey table (example), 314
ChildConstraint property (DataRelation), 101
ChildUpdateManyMany table (example), 335
      creating stored procedures for, 339
classes
      connected, 2, 65, 134, 660
      connection string builders, 13
      disconnected, 3, 65, 134
      XML, 3
      (see also names of individual classes)
ClearErrors( ) (DataRow), 313
CLOB values, conversion to strings, 733
Clone( ) method (DataTable), 376
CLR (Common Language Runtime), 830-873, 901
      ADO.NET in-process extensions supporting, 833-835
      creating a DDL trigger, 870-873
      creating a DML trigger, 863-870
      creating a scalar-valued function, 843-846
      creating a stored procedure, 836-843
      creating a table-valued function, 846-850
      creating a UDA function, 850-854
      creating UDTs, 725-727, 854-863
      custom attributes for routines, 835
      enabling CLR integration, 831
      integration, 830
      new and changed T-SQL statements supporting CLR integration, 831-833
      routines, 830
      types of routines, 831
clr enabled server configuration option, 831
ClrPointType program (example), 725
CLSID values for OLE DB providers, 49
code
      examples from this book, xv, xx
      managed code, 830
      provider- and database-independent, writing, 754-763
code access security (CAS), 830
codegen namespace, 130
Column class, 798
column ordinals
      GetRows( ) method and, 426
      improving DataReader performance, 709-712
ColumnMapping property (DataColumn), 620, 622
ColumnMappings property (DataColumnMapping), 76
columns
      default values, retrieving from SQL Server, 780-784
      formatting values in XML, 620-623
      GridView controls, 547
      non XML data type, storing XML data, 632-635
Columns property (DataTable), 66, 69
COM interop
      using ADOX, 814-819
      using SQL Server bulk load, 699
      using with OLE DB to display Data Link Properties dialog, 56-59
CombineHeterogeneousData program (example), 243
ComboBox controls, 578-580
      properties for data binding, 580
Command class, 2, 65, 134
      AddWithValue( ) method, 196
      BeginExecuteNonQuery( ) method, 662, 664, 669, 671
      BeginExecuteReader( ) method, 675
      BeginTransaction( ) method, 513
      Cancel( ) method, 683, 685
      CommandText property, 134, 186, 738
      CommandType property, 186
      COMPUTE BY statement, 261
      EndExecuteNonQuery( ) method, 663, 664, 669
      EndExecuteReader( ) method, 675
      ExecuteNonQuery( ) method, 135, 137, 194, 789
Command class (continued)
      ExecuteReader( ) method, 134, 140, 172, 202
      ExecuteScalar( ) method, 137, 138, 163, 164, 743
      ParameterCollection class, 193, 199
      Parameters collection, 182, 333
      Status property, 739
      Transaction property, 451
      UpdatedRowSource property, 292, 485
      UpdateRowSource property, 485
CommandBehavior enumeration, 140, 175, 385
CommandBuilder class, 286
      advantages and limitations of, 365
      DeriveParameters( ) method, 331, 333
      QuotePrefix and QuoteSuffix properties, 361, 364
CommandText property (Command), 134, 186, 738
CommandType enumeration, 186
CommandType property (Command), 186
COMMIT TRAN command, 460
Commit( ) method (Transaction), 451
Common Model, 761, 874
Common Table Expression (see CTE)
Complete( ) method (TransactionScope), 443, 446
complex data binding, 519, 526
COMPUTE BY clause, 261
      support by OLE DB .NET data provider, 263
computers, network name, 18
concurrency
      checking for violations, 496-501
      DBConcurrencyException, handling, 502-509
      problems with, 441
      summary of concurrency problems, 513
ConcurrencyViolation table (example), 496
.config file extension, 7
Configuration class (System), 8
Configuration Manager (SQL Server), 766
ConfigurationManager class, 878
conflicts in data, resolving, 502-509
ConnectAccessDatabase program (example), 32
connected classes, 2, 65, 134
      database independence and, 660
ConnectExcel program (example), 38
Connection class, 2, 65, 134
      BeginTransaction( ) method, 451
      Close( ) or Dispose( ) method, 51
      ConnectionString property, 4, 13
      Database property, 46
      EnableStatistics property, 752
      finding and retrieving database metadata, 765
      GetSchema( ) method, 768, 774
      implementation of IDbConnection, 763
      RetrieveStatistics( ) method, 752
Connection object, 333
connection pooling, 6
      monitoring connections, 59-64
      setting options, 46-50
      understanding, 50-53
      using with transactions, 54
Connection Property dialog, 54
connection strings, 878-881
      AdventureWorks, SQL Server connection from ASP.NET, 22
      constructing programmatically, 11-13
      constructing, web site for information, 6
      integrated security, SQL Server connection from ASP.NET, 23
      integrated security, using, 6
      IP address specifying data source, 21
      Persist Security Info attribute, 5
      specifying, 4
      SQL Server named instance on custom port, 18
      storing, 4-11
connections, 4
      executing multiple commands on a single connection, 660-662
ConnectionString property, 880
      Connection class, 4, 13
      OdbcConnection class, 31
      OleDbConnection class, 29
connectionStrings element, 4, 8
      storing connection strings in application configuration file, 7
ConnectionStrings property, Configuration class, 8
ConnectionStrings( ) method (ConfigurationManager), 878
ConnectionStringSettingsCollection class, 878
ConnectIPAddressSqlServer program (example), 19
ConnectMSAccessDataAspNet program (example), 35
ConnectOdbcDataSource program (example), 30
ConnectOleDbDataSource program (example), 28
connector names, ad hoc, 235
ConnectOracle program (example), 24
ConnectPasswordAccessDatabase program (example), 33
ConnectSqlServer program (example), 13-15
ConnectSqlServerNamedInstance program (example), 17
ConnectTextFile program (example), 40
Constraint class, 3, 65, 87, 97
ConstraintCollection, 89
      key methods, 89
      key properties, 90
      unique and foreign key constraints, 99
ConstraintException, 179, 719
constraints
      .NET Framework built-in classes, 87
      creating unique, 85-90
      DataRelation class and, 179
      foreign key constraint, 95-99
      performance and, 659
      retrieving for a DataSet, 172-175
      retrieving from SQL Server database, 485-496
      sp_helpconstraint stored procedure, 783
      sys.default_constraints catalog view, 782
Constraints property (DataTable), 89, 99
Contact.xslt file (example), 643
ContactDataSet.xml file (example), 613-614
Container.DataItem, 535
ContentType property (HttpResponse), 569
ContinueUpdateOnError property (DataAdapter), 310, 313, 502
ControlDataModification program (example), 357-360
ControlDataModification table (example), 357
CONVERT function, 857
ConvertBetweenDataTableAndDataRowArray program (example), 114-116
ConvertDataReaderToDataTable program (example), 381-383
ConvertDataSetAdoRecordset program (example), 429-437
ConvertDataSetToDataReader program (example), 390-392
ConvertingDataTableToDataReader program (example), 389
ConvertQueryResultsArray program (example), 423-425
Copy( ) method (DataTable), 376, 379
CopyRowsFromOneDataTableToAnother program (example), 373
CopyTablesFromOneDataSetToAnother program (example), 376-379
CopyToDataTable( ) method, 116
CopyToRows( ) method (RowUpdatedEventArgs), 911
COUNT function, 163, 168
Count property, 578
      DataRowCollection class, 161, 163
COUNT(*) query, 165
CountRecordsMeetingCriteria program (example), 163
country codes, 574
CREATE DATABASE statement, 793, 795
CREATE SEQUENCE command, 301
CREATE TABLE command, 228
CREATE TABLE statement, 796, 798, 802
      Oracle, 799
Create( ) method
      ADOX.Catalog object, 816
      Database class, 795
      Table class, 798
CreateAccessDatabase program (example), 815
CreateAutoIncrementColumn program (example), 93
CreateChildView( ) method, 561, 563
CreateDataColumnAddDataTable program (example), 67
CreateDataReader( ) method, 909
      DataSet class, 392
      DataTable class, 388
CreateDataRelation program (example), 99
CreateDataTableAddDataSet program (example), 71
CreateForeignKeyConstraint program (example), 95
CreateParameter( ) method (SqlXmlCommand), 648
CreatePrimaryKey program (example), 90-92
CreateRelationFromSqlServerISV (example), 808-811
CreateRelationsFromSqlServerCV (example), 804-808
CreateSqlServerDatabase (example), 793
CreateTableDdlFromDataTable (example), 799-803
CreateUniqueConstraint program (example), 86
CreateXmlDataSetChanges program (example), 623-625
credentials, passing for database connections, 5
CROSS APPLY, 284
cryptography, 372
      encrypting a DataSet, 406-414
      encryption algorithms, 412
      NTFS directory and file encryption, 11
CryptoStream class, 396, 414
CTE (Common Table Expression), 236, 270-272
      recursive, 272-273
      syntax, 271
CultureInfo class, 573
CurrencyManager class, 577
Current property, 578
CurrentCulture property, 574
CURRVAL keyword, 298, 301
custom files, storing connection strings, 11
Customers.xml file (example), 696
Customers.xsd file (example), 696

D[ Top ]
data access, optimizing (see optimization; performance)
data binding (see binding)
data conflicts, resolving, 502-509
Data Definition Language (see DDL)
Data Link Properties dialog box, 56
Data Manipulation Language (see DML)
data modification, controlling with DataView, 357-361
data providers, 1
      ADO.NET 1.0 and 1.1, 760
      ADOX support, 819
      data types, mapping to .NET Framework types, 77-83
      enhancements in ADO.NET 2.0, 881-909
      enumerating .NET data providers, 820-822
      enumerating OLE DB providers, 822-826
      enumeration and factories, 874-881
      factories, 761-763
      (see also data sources; names of individual providers)
Data Shaping Services, 236, 266
Data Source Administrator (ODBC), 53
data source name (DSN), ODBC, 31
data sources, 1-64
      changing database for an open connection, 44-46
      combining data from different sources, 241-244
      connecting to Access database, 32
            from ASP.NET, 35-38
            password protected database, 33
      connecting to Excel workbook, 38
      connecting to ODBC, 29
      connecting to OLE DB, 28
      connecting to Oracle database, 24
      connecting to SQL Server database, 13-16
      connecting to SQL Server from ASP.NET, using integrated security, 21
      connecting to SQL Server named instance, 17
      connecting to SQL Server, using IP address, 18
      connecting to text file, 40-43
      connection pooling
            options, 46-50
            using effectively, 50-53
            using with transactions, 54
      connection property dialog, displaying, 54
      connection strings
            constructing programmatically, 11-13
            storing, 4-11
      connection strings, constructing, 6
      connections and connection pooling, monitoring, 59-64
      connections, connections strings, and connection pooling, 4
      Data Link Properties dialog box. displaying, 56
      overview of ADO.NET, 1-3
      providers included in .NET Framework, 1
      updating with data from different data source, 322-326
data types
      CLR user-defined types (UDTs), 858
      conversions for a text file, 226
      conversions, managing, 660
      DataReader methods returning values as .NET Framework types, 143
      DataReader methods returning values as SQL Server types, 143
      DataSet and DataTable objects, 65
      expression columns, 85
      large-value, 724, 900
      mapping provider types to .NET Framework types, 77-83
            SQL Server, 802
      Object, 266
      Oracle LOB, 733
      OracleType.Cursor, 187, 190
      strongly typed DataSet objects, 66
      table, 209
      Unicode, 788
      xml, 638
DataAdapter class, 2, 65, 79, 134, 135
      batch processing, 910
      batch updates, 735-743
      batching updates through event handling, 660
      ContinueUpdateOnError property, 310, 313, 502
      data retrieval from Excel workbooks, 229
      Fill( ) method, 66, 76
            batch fill operation, 171
            overloads, 146
            specifying table mapping, 77
      filling programmatically created DataSet, 107
      FillSchema( ) method, 65, 76
            overloads, 174
            using with batch query and OLE DB provider, 171
      implementation of IDataAdapter, 763
      InsertCommand command constructor, 294
      MissingSchemaAction property, 172
      opening and closing connections, 51
      RowUpdated event, 507
      RowUpdating event, 326, 485
      Update( ) method, 66, 76, 257, 310, 313
DataAdapterTransaction program (example), 461-463
Database class, 492, 795
database connections, 4
database independence, 660
database mirroring, 902
Database property (Connection), 46
database-independent code, 878
DatabaseIndependentCode program (example), 758-760
DATABASEPROPERTYEX function, 748, 890
databases
      adding table to SQL Server database, 796-799
      changing for an open connection, 44-46
      creating a new Access database, 814
      creating a table from a DataTable schema, 799-803
      creating in SQL Server, 793-795
      listing tables in Access database, 816-819
      retrieving metadata for, 768-772
      schema discovery API, 906-909
      (see also names of individual databases)
DataBind( ) method, 527
      Page class, 524
DataBinder class, 523
DataBindings property, 523
DataBindWindowsFormRadioButton program (example), 597-602
DataColumn class, 3, 65
      autoincrementing properties, 93, 94, 107
      ColumnMapping property, 620, 622
      configuration properties, 69, 73
      error-checking properties and methods, 313
      expression column, adding to a table, 85
DataColumnCollection, 69
      Add( ) or AddRange( ) method, 66
      key methods, 69
      key properties, 70
DataColumnMapping class, 74
      ColumnMapping property, 76
DataControlField class, 547
DataGridView controls, 581-583
      binding to a data source, 583, 586
      modifying and updating data, 583-586
      searching, 603-607
      synchronizing master-detail data, 590-593
DataList controls, 534-543
      button click events, 543
      data source control or classes bound to, 542
      definition and templates, 535
      schema of DataList table, 534
      templates, 542
dataList.UpdateCommand, 538
dataList_CancelCommand, 537
dataList_DeleteCommand, 537
dataList_EditCommand, 538
dataList_ItemCommand, 537
DataMember property, DataViewGrid control, 583
DataReader class, 2, 65, 80, 134
      accessing values in, 141-144
            methods accessing row values, 144
            methods returning values as .NET Framework data types, 143
            methods returning values as SQL Server data types, 143
      converting to a DataSet, 386-388
      converting to a DataTable, 381-386
      counting returned records, 165-168
      data retrieval from Excel workbooks, 229
      data source-specific accessor methods, 80
      data types and accessors for ODBC .NET data provider, 82
      data types and accessors for OLE DB .NET data provider, 81
      data types and accessors for Oracle .NET data provider, 83
      data types and accessors for SQL Server .NET data provider, 80
      GetName( ) method, 712
      GetOrdinal( ) method, 709, 712
      GetSchemaTable( ) method, 384, 438, 784, 787
      HasRows property, 161, 163
      NextResult( ) method, 168, 386
      Read( ) method, 161
      retrieving a result set stream, 139-141
      stored procedure output value DataReader, 200-202
      stored procedure return value DataReader, 197-199
      typed accessor methods, 660
      using for batch queries and multiple result sets, 172
DataReaderColumnOrdinals program (example), 710-712
DataReaderRowCountForm program (example), 166-167
DataReaderTypedAccessors program (example), 706-709
DataRelation class, 3, 65, 97, 99, 101, 179, 181
      child records, 112
      copying DataRelation objects between tables, 380
      Nested property, 641
      using expression columns for lookup values based on, 108-109
DataRelationCollection class, 102
      Add( ) method, 107
      key methods, 103
      key properties, 104
DataRelations property (DataSet), 102
DataRelationStronglyTypedDataSet program (example), 156
DataRow class, 3, 65, 124, 159
      accessing data values in DataRow array, 117-119
      converting between DataTable and array of DataRow objects, 113-117
      error-checking properties and methods, 313
      HasVersion( ) method, 257
      RowState property, 257
DataRowAction enumeration, 319
DataRowChangeEvent class, 124
DataRowChangingEventArgs class, 319
DataRowCollection class, 149, 163, 248
      Add( ) method, 94
      CopyTo( ) method, 115
      Count property, 161
      Find( ) method, 246
      Remove( ) or RemoveAt( ) method, 258
DataRowExtensions class, Field<T>( ) method, 119
DataRows property (DataTable), 149
DataRowState enumeration, 256, 326
      Added value, 375
      Deleted value, 254
DataRowVersion enumeration, 119, 181, 257, 329
      Original value, 254
DataRowView objects, 160
DataSet class, 3, 65
      accessing rows deleted from DataTable, 254-258
      building programmatically, 104-107
      converting a DataSet to a Recordset, 428-439
      converting a DataSet to a DataReader, 390-393
      copying tables from one to another, 376-380
      data source independence, 79
      DataRelations property, 102
      deserializing data, 397-399
      determining difference between two DataSet objects, 236-241
      difference between data in two DataSet objects, 236-241
      encrypting a DataSet, 406-414
      EnforceConstraints property, 88, 97, 179, 716, 719
      error-checking properties and methods, 313
      filling with a result set, 145-147
      filling with multiple result sets from batch query, 171
      foreign key constraint, 95
      GetXml( ) method, 622
      LINQ to DataSet, 915-917
      Load( ) method, 388
      loading an ADO Recordset into a DataSet, 426-428
      loading parent and child data into, 175-179
      mapping table and column names from data source, 74
      Merge( ) method, 400, 401
      original source of data and, 325
      querying using LINQ, 210-216
      ReadXmlSchema( ) method, 614
      relation and constraint objects, performance and, 659
      Relations property, 107
      retrieving schema and constraints, 172-175
      retrieving values from, 150
      serializing contents, 393-397
      strongly typed DataSets, 66, 150-156
            accessing values, 154
            controlling names in, 126-130
            creating, 119-125
            creating schema file, 152
            parent-child relations, 156-158
            replacing null values, 130-133
            using DataView with, 159
      synchronized with XmlDataDocument class, 609
      synchronizing with an XML document, 627-632
      Tables property, 71, 107
      untyped, navigating between parent and child tables, 179-182
      WriteXml( ) and ReadXml( ) methods, 612, 620, 622
      WriteXmlSchema( ) method, 614
DataSetFilled event, 681
DataSource property
      BindingNavigator control, 590
      DataGridView control, 581
      DataViewGrid control, 583
DataTable class, 3, 65, 124, 235
      accessing deleted rows, 254-258
      adding column to child table displaying data from parent table, 108-109
      BeginLoadData( ) method, 716, 719
      Columns property, 66, 69
      configuration properties for tables, 73
      Constraints property, 89, 99
      constructor, overloads, 72
      converting between array of DataRow objects, 113-117
      converting to a DataReader, 388
      copying rows from one DataTable to another, 373-376
      DataRows property, 149
      displaying calculated value for each row, 84
      EndLoadData( ) method, 716, 719
      enhancements in ADO.NET 2.0, 909
      error-checking properties and methods, 313
      ExtendProperty, 744
      filling with a result set, 145-147
      filtering and sorting data, 249-252
      filtering null field values, 252
      filtering rows, 244-246
      finding rows, 246-249
      GetRows( ) method, 425
      GetString( ) method, 422
      Load( ) method, 384
      methods for manipulating rows, 156
      populating table parameters, 196
      PrimaryKey property, 90, 92, 97
      ReadXmlSchema( ) method, 614
      retrieving values from, 147-150
      RowChanging event handler, 317
      Rows property, 163
      selecting the top N rows, 258
      WriteXml( ) and ReadXml( ) methods, 612, 620
      WriteXmlSchema( ) method, 614
DataTableCollection, 73
      Add( ) method, 71, 107
      AddRange( ) method, 71
      key methods, 73
      key properties, 74
DataTableExtensions class, 116
DataTableMapping objects, 74
DataTableMappingCollection, 76
DataTableReader class, 390, 392, 909
DataView class, 3, 65, 235
      AllowDelete, AllowEdit, and AllowInsert properties, 357
      Filter and Sort properties, 259
      filtering null field values, 252
      filtering rows, 244-246
      Find( ) and FindRows( ) methods, 607
      finding rows, 246-249
            in strongly typed DataSet, 159
      properties, 360
      RowFilter property, 85, 249, 251
      Sort and Filter properties, 261
      Sort property, 85, 249, 606
DataView events, DetailsView control, 530
DataViewManager class, 235, 252
DataViewRowState enumeration, 258, 350, 480
      Deleted value, 254
DataViewSetting objects, 252
DataViewSettingCollection class, 252
DataViewSettings property (DataViewManager), 252
DataViewStronglyTypedDataSet program (example), 159
DateSetFilled event, 679
datetime data type, 501
DBConcurrencyException, 502-509
DbConnection class, GetSchema( ) method, 769-772, 906-909
DbConnectionStringBuilder class, 4, 13, 880
DbDataAdapter class, 384, 755
DbDataReader class, 196
DbInfoLiterals, 365
DbMetaDataCollectionNames class, 771, 906
      Restrictions argument, 771, 908
DBNull class (System), 190, 192, 709
DBPROP_JETOLEDB_DATABASEPASSWORD property, 34
DbProviderFactories class, 761, 875
      GetFactory( ) method, 762, 877
      GetFactoryClasses( ) method, 820
DbProviderFactory class, 761, 762, 877
      provider-specific classes derived from, 762
      public methods, 762
DBTYPE_HCHAPTER, 266
DDL (Data Definition Language), 765, 795
      CREATE DATABASE statement, 793, 795
      CREATE TABLE statement, 796, 798
      creating a CLR DDL trigger, 870-873
      creating a database table from DataTable schema, 802
      creating OracleSequenceValue table, 298
      creating parent and child tables with autoincrementing keys, 314
      creating table UpdateDifferentData Source, 322
      DROP DATABASE statement, 795
      triggers, 869
debugging stored procedures, 660, 712-716
      from managed code, 714
      in standalone mode, 714
DebugStoredProcedure program (example), 713
decimal type (.NET), 83
Decrypt( ) method, 414
deep serialization, 396
Default.aspx file (Web Forms page), 685
Default.aspx.cs program (example), 686-688
DELETE statement, 229
      ACE OLE DB driver and, 305
Delete( ) method, DataRow or DataView, 258
DeleteChild stored procedure (example), 468
DeleteCommand( ) method (DataAdapter), 464
DeleteGrandchild stored procedure (example), 470
DeleteParent stored procedure (example), 467
DENSE_RANK( ) function, 278
Department.xml file (example), 633
Department.xslt stylesheet (example), 429
Dept property (AnnotatedDepartment), 127
DeriveParameters( ) method (CommandBuilder), 331, 333
descending clause, 213
DESCryptoServiceProvider class, 413
deserialization, 395
      deserializing DataSet data, 397-399
      (see also serialization)
Deserialize( ) method, 396, 399
DeserializeDate program (example), 397-399
DetailsView controls, 527-530
      DataView events, 530
DetermineDataDifferenceDataSets program (example), 236-239
dictionary attacks on hashed passwords, 418
DiffGrams (XML), 239, 351, 609
      creating, 623-627
            file contents, 626
      representation of DataSet differences, 240
DirectoryEntry class, 849
DirectoryLoader class, 849
disconnected classes, 3, 65, 134
      enhancements in ADO.NET 2.0, 909-911
DisplayConnectionPropertyDialog program (example), 55
DisplayDataLinkPropertiesDialog program (example), 57
Distributed Transaction Coordinator (see MSDTC)
distributed transactions
      creating, 442-448
      manual transactions and, 451
DLLs (dynamic-link libraries), SQL Server network, 20
DM (Driver Manager), ODBC, 50, 53
DML (Data Manipulation Language), 795
      creating a CLR DML trigger, 863-870
Document Object Model (DOM), 912
domain user, web application impersonating, 24
Driver Manager (DM), ODBC, 50, 53
drivers, ISAM, 41, 224, 228
DROP DATABASE statement, 795
DROP statement, 802
DropDownList controls, 602
DSN (data source name), ODBC, 31
dt:type attribute, 438
DTC (Distributed Transaction Coordinator) (see MSDTC)
due time, 747
dynamic link libraries (DLLs), SQL Server network, 20

E[ Top ]
EFS (Encrypted File System), 11
Elapsed event, 747
Enabled property (Timer), 747
EnableStatistics property (Connection), 752
Encoding enumeration, 612, 617
EncryptDataSet program (example), 407-413
Encrypted File System (EFS), 11
EncryptedMessage class, 414
EndEdit( ) method, 360, 583, 587
EndExecuteNonQuery( ) method
      Command class, 663, 664, 669
      SqlCommand class, 667
EndExecuteReader( ) method
      Command class, 675
      SqlCommand class, 668
EndExecuteXmlReader( ) method, SqlCommand class, 668
EndLoadData( ) method (DataTable), 716, 719
EnforceBusinessRulesColumnExpressions program (example), 482-484
EnforceBusinessRulesColumnExpressions table (example), 481
EnforceConstraints property (DataSet), 88, 97, 179, 716, 719
EnterpriseServicesInteropOption enumeration, 448
entity classes (LINQ), 222
EnumerateDataProviders program (example), 820
EnumerateOdbcDrivers program (example), 826
EnumerateOleDbProviders (example), 822-824
EnumerateSqlServers program (example), 766
enumerators, 850
error message severity levels, 204
error-checking catch blocks, 456
errors
      referential integrity, 464
      retrieving update errors, 309-313
      SQL Server, transaction count, 460
      stored procedure, raising and handling, 202-206
Eval( ) method (DataBinder), 523, 550
Excel, 1
      connecting to a workbook, 38
      modifying data in a workbook, 302-305
      retrieving data from a workbook, 226-229
Excel workbook Category.xlsx, 302
exceptions
      canceling commands, 685
      changing database for an open connection, 45
      manual transactions, 448
EXEC command, 695
ExecSimultAsyncSqlStatementWaitAny (example), 669-671
executable applications, configuration file, 7
EXECUTE statement, 208
ExecuteAndSend( ) method (SqlPipe), 837
ExecuteAsyncSqlStatementCallback (example), 663
ExecuteAsyncSqlStatementPolling (example), 665
ExecuteBatchQuery program (example), 168
ExecuteCommonTableExpression program (example), 270
ExecuteComputeByQuery program (example), 262
ExecuteMultipleCommandsSingle-Connection (example), 660-662
ExecuteNonQuery( ) method, 738
      Command class, 789
ExecuteQueryNoResultSet program (example), 136
ExecuteQueryNoResultSet table (example), 135
ExecuteReader( ) method
      Command class, 134, 140, 172, 202
            behavior parameter, 385
      OleDbCommand class, 261
ExecuteRecursiveQuery program (example), 272
ExecuteScalar( ) method (Command), 743
ExecuteTableValuedFunction program (example), 208
ExecuteUserDefinedScalarValuedFunction program (example), 207
ExecuteXmlReader( ) method (SqlCommand), 642
ExecutingParameterizedQuery program (example), 182
EXISTS query, 802
expiration policy for cached items, 689
ExportParameters( ) method, 414
ExportQueryResultsString program (example), 419-421
expression columns, 110-113
      adding to a DataTable, 84-85
      aggregate functions support, 113
      enforcing business rules, 481-485
      retrieving lookup values based on DataRelation objects, 108-109
Expression property (DataColumn), 85
Extended Properties attribute, 41, 224, 228
extended stored procedures, 830
ExtendedPrice scalar-valued function (example), 206
ExtendedProperties property, 747
ExtendedProperty (DataTable), 744
Extensible Stylesheet Language (XSL), 646
Extensible Stylesheet Language Transformations (see XSLT)
external storage techniques (connection strings), 10

F[ Top ]
factory classes (data provider), 761-763, 875
      database independence and, 660
Factory design pattern, 761, 874
fields in a text file, specifying, 225
file format, specifying for a text file, 225
file systems, EFS, 11
filename, specifying for a text file, 225
FileStream class, 396
Fill( ) method (DataAdapter)
      batch fill operation, 171
      overloaded, Recordset or Record object as data source, 428
      overloads, returning data subset, 694
FillDataSet( ) method, asynchronous (example), 679-681
FillDataSetXmlTemplateQuery (example), 647
FillSchema( ) method (DataAdapter), 171
      overloads, 174
      retrieving DataSet schema, 173
FillSortData program (example), 249
FillSortDataSelect program (example), 251
Filter property (DataView), 259, 261
filtering data
      in a DataTable, 249-252
      rows in DataTable or DataView, 244-246
FilterNullValues program (example), 252
FilterRows program (example), 245
Find( ) method
      DataRowCollection class, 246, 248
      DataView class, 246, 248, 607
FindRows program (example), 246
FindRows( ) method (DataView), 246, 248, 607
FIRST paging operation, 692, 695
FOR XML clause, 609, 642
foreach loop, executing a LINQ query, 214
foreign keys
      creating a foreign key constraint, 95-99
      retrieving information about restraints in a database, 493
      tables in a DataSet, creating in a database, 803
ForeignConstraint class, 95
ForeignKeyCollection class, 492
ForeignKeyConstraint class, 88, 97
      configuration properties, 98
      DataRelation on child table, 101
      DeleteRule, UpdateRule, and AcceptRejectRule, 101
Format option (schema.ini), 42
Formatter class, 396
formatters for messages, 232
FormatXmlColumnValues program (example), 620
FormsAuthentication class, 415
      HashPasswordForStoringInConfigFile( ) method, 418
FormView controls, 557-561
      data display and templates, 560
      data sources bound to, 561
fragments (XML), 638
from clause (LINQ query), 213, 214
FromStream( ) method (Image), 596
functions
      invoking, 206
      mapping to DataContext methods, 222
      scalar-valued CLR function, creating, 843-846
      SQL change data capture, 371
      table-valued CLR function, creating, 846-850
      UDA CLR function, creating, 850-854

G[ Top ]
GetChanges( ) method (DataSet), 322, 325
GetChild stored procedure (example), 468
GetChildRows( ) method, 181
GetColumnError( ) method (DataRow), 310, 313
GetColumnsInError( ) method (DataRow), 310, 313
GetContactQuery.xml file (example), 646
GetData( ) method, 757
      DataReader class, 381
GetDataReader( ) method, 755
GetDataSetDifference( ) method, 235, 236, 239
GetDataSources( ) method, 902
GetDataTable( ) method, 755
GetElements( ) method (OleDbEnumerator), 822, 825
GetEnumerator( ) method (OleDbEnumerator), 822, 825
GetErrors( ) method (DataTable), 310, 313
GetFactory( ) method, DbProviderFactories class, 762, 877
GetFactoryClasses( ) method, 820, 875
      DataTable schema for results, 761
      providers returned by, 761
GetGrandchild stored procedure (example), 469
GetName( ) method (DataReader), 712
GetOleDbSchemaTable( ) method, 778, 816, 819
      OleDbConnection class, 365
GetOrdinal( ) method (DataReader), 709, 712
GetParent stored procedure (example), 466
GetParentRow( ) method, 181
GetParentRows( ) method, 182
GetRows( ) method, 422
      custom, 422
      DataTable class, 425
GetSchema( ) method, 906-909
      Connection class, 768, 774
      DbConnection class, overloads, 769-772
GetSchemaTable( ) method (DataReader), 381, 384, 438, 787
GetSqlServerIdentityValue program (example), 290-292
GetSqlServerIdentityValue table (example), 289
GetStoredProcedureParameterInformation (example), 331-333
GetString( ) method, 419, 421
GetXml( ) method, 622
      DiffGram generation and, 627
Globally Unique Identifier (see GUID)
GOTO paging operations, 692, 695
Grandchild table (example), 465
GridView controls, 543-548, 548-557
      batch updates, 557
      column types, 547
      columns and templates, 550
      data display, 556
      data sources bound to, 546
      DataGrid event handler responses, 557
      editing data sources, 556
      events for editing and navigation, 547
      synchronizing master-detail pair, 561-565
      templates, 547
GROUP BY statement, 266
group clause (LINQ query), 213
GUID (Globally Unique Identifier), 285
      OleDbSchemaGuid class, 778
      salting, 415
      using as primary key, 317-319
Guid class, 318

H[ Top ]
HandleCallback( ) method, 663, 675, 882
hardcoding connection strings, 10
HasErrors property, 310, 313
hash algorithms, 418
      .NET Framework classes implementing, 418
hashing, password, 415, 417
HashPasswordForStoringInConfigFile( ) method, 418
Hashtable class, 747
HasRows property (DataReader), 161, 163
HasRows( ) method (DataReader), 168
HasVersion( ) method (DataRow), 257
hierarchical data
      retrieval using the Shape language, 264-267
      retrieving, 175-179
HKEY_CLASSES_ROOTCLSID key, 826
HMACSHA1 class, 418
HttpResponse class
      BinaryWrite( ) method, 569
      ContentType property, 569

I[ Top ]
IAsyncResult interface, 668, 882
      AsyncState property, 663
      AsyncWaitHandle property, 671
      IsComplete property, 676
      IsCompleted status, 664
      polling, using IsComplete property, 884-886
      properties, 668
IBinarySerializable interface, 854
IBinarySerialize interface, 862
IBindingList interface, 583
IBindingListSource interface, 583
IDataAdapter interface, 763
IDataReader interface, 264
IDbConnection interface, 757, 761, 874
      ChangeDatabase( ) method, 45
      implementations, 763
IDbDataAdapter interface, 757
IDbTransaction interface, 452
identity column, 285
identity fields, conflicts inserting new rows into existing table, 288
@@IDENTITY function, 297, 294
identity values, synchronizing values generated by data source, 289-294
IEnumerable interface, 534, 912
IEnumerable<T> interface, 116, 214, 912
IEnumerator interface, 850
IFormatter interface, 396
      Deserialize( ) method, 397
      Serialize( ) method, 396
IIS (Internet Information Server), xv
      ASP.NET applications, 23
      configuring for ASP.NET connection to Access, 37
      system account as security context, 37
IList interface, 583
IList<SqlDataRecord> objects, 196
IListSource interface, 583
Image class, FromStream( ) method, 596
Image controls, filling from a database field, 566-569
images, displaying from database in Windows Forms control, 594-596
ImageUrl property (Image control), 566, 569
impersonation, 37
ImportParameters( ) method, 414
ImportRow( ) method (DataTable), 373, 375
ImprovePagingPerformance (example), 692-694
ImprovePerformanceFillDataSet program (example), 716-719
Index class, 492
IndexCollection class, 492
Indexed Sequential Access Method (ISAM) drivers, 41, 224
indexers
      C#, accessing DataViewSetting object, 252
      DataReader object, 142
      DataRow object, 150
      DataRowCollection object, 149
      DataView object, 160
      overloaded DataRow indexer, 329
      Position property in zero-based index, 578
Indexes property, 492
IndexKeyType enumeration, 492
IndexKeyType property (Index), 492
IndexOutOfRangeException, 709
information catalog views
      reconstructing relationships between DataSet tables, 812
information schema views, 485, 494, 764, 777
      available in SQL Server, 777
      reconstructing relationships between tables, 813
INFORMATION_SCHEMA.PARAMETERS, 335
INFORMATION_SCHEMA.TABLES view, 778
INNER JOIN (T-SQL), 213
INSERT command, 229
INSERT statement
      inserting multiple rows using single statement, 320, 321
      parameterized
            use with Excel Workbook, 305
            using with text files, 308
Insert( ) method, Cache class, 689
Insert_OracleSequenceValue stored procedure, 298
insertButton_Click, 538
InsertCategories stored procedure, 294
InsertChild stored procedure (example), 469
InsertCommand( ) method, DataAdapter class, 464
InsertGetSqlServerIdentityValue stored procedure, 290
InsertGrandchild stored procedure (example), 470
InsertMultipleRows program (example), 320
InsertParent stored procedure (example), 467
InsertRecords( ) method, 461
InsertTVPTable stored procedure (example), 193
instances, SQL Server, 18
integrated security, 6
IntegratedSecurityFromAspNet program (example), 22
Interval property (Timer), 747
INullable interface, 861
InvalidCastException, 709
InvalidOperationException, 333
InvokeFunctionForEachRowResultSet program (example), 283
IP address (SQL Server), connection using, 18
IPC (interprocess communication), 441
IRemotingFormatter interface, 396
is_tracked_by_cdc column, 367
ISAM (Indexed Sequential Access Method) drivers, 41
IsComplete property (IAsyncResult), 676, 884
IsDBNull( ) method, 193, 709
IsNull( ) method, 857
IsNullable interface, 857
isolation levels (transaction), 509-514
      locking hints, 517
      setting, 513
IsolationLevel enumeration, 513
IsolationLevel property (Transaction), 513
IsPrimaryKey property (Unique Constraint), 92
Item( ) property in VB.NET, 252, 329
      accessing PropertyCollection members, 747
IXmlSerializable interface, 862

J[ Top ]
Jet ODBC Driver, 31
Jet OLE DB driver, 33
      Excel 2007 workbooks and, 40
Jet OLEDB:Database Password attribute, 34
join clause, 213, 921
JOIN statement, 266
JunctionUpdateManyMany table (example), 335
      creating stored procedures for, 340

K[ Top ]
keyword conflicts, overcoming with CommandBuilder, 361-365

L[ Top ]
Label control, 55
language codes, 574
Language-Integrated Query (see LINQ)
large amounts of data, moving, 659
large data type values, reading and writing from Oracle, 730-734
Large Object Binary (LOB) data types, 733, 900
large-value data types, 720-725, 900
      defined, 724
LAST paging operation, 692, 695
libraries, network, 20
linked servers, accessing data from different sources, 243
LINQ (Language-Integrated Query), 210-216, 911-922
      LINQ to ADO.NET, 212, 912
      LINQ to DataSet, 212, 215, 915-917
      LINQ to Objects, 212, 912
      LINQ to SQL, 212, 216-222, 917-922
      LINQ to XML, 212, 608, 912
      queries, 212, 912-915
      querying a string array (example), 213
LinqToDataSetQuery program (example), 210
LinqToSql program (example), 219-221
LinqToSqlDataSources, 217
LinqToSqlORDesignSurface, 217
ListAccessDatabaseTables (example), 816
ListBox controls, 602
ListControl class, 602
Load( ) method
      DataSet class, 388
      DataTable class, 381, 384
LoadAdoRecordsetIntoDataSet program (example), 426
LoadDataWebFormControl program (example), 520-523
LoadImageIntoWebFormControl program (example), 566-568
LoadImageIntoWindowsFormControl program (example), 595
LoadOption enumeration, 116, 384, 388
LoadSaveDataSetXsdSchema program (example), 615-617
LoadXml( ) method, 635
LOB (Large Object Binary) data types, 733, 900
LocalizeWebFormsApplication program (example), 570-573
locking hints in SQL Server database, 514-518
locks, 516
Log table (example), 872
login credentials, 415-418
LogTableActivityTrigger program (example), 870

M[ Top ]
machine.config file, 7
      default connection string, 880
MACTripleDES class, 418
Main( ) method, 681
managed code, 830
Management Studio (SQL Server), 18
manual transactions, 441
      nesting, 452-456
ManualTransaction program (example), 449-451
many-to-many relationships, 182
      updating a DataSet containing, 335-350
MappingDataTypes program (example), 77-79
MappingTableAndColumnNames program (example), 74
MappingType enumeration, 622
MARS (Multiple Active Result Sets), 662, 893
master-detail data
      synchronizing in Web Forms, 561-565
      synchronizing in Windows Forms, 590-593
MasterDetailWebFormDataGrid program (example), 561-565
MasterDetailWindowsFormDataGrid program (example), 591-593
MaxLength property, 173, 784
MD5CryptoServiceProvider class, 418
MERGE statement, 403, 405
      syntax, 406
Merge( ) method (DataSet), 400, 401
      missingSchemaAction argument, 402
      PreserveChanges argument, 402
MergeDataSets program (example), 400
MergeTables program (example), 404
merging data
      in two database tables, 403-406
      in two DataSet objects, 399-402
message queuing
      querying data asynchronously, 229-234
      updating data asynchronously, 350-355
MessageQueue class
      Receive( ) method, 234
      Send( ) method, 232
messages returned by CLR stored procedures, 843
metadata
      categories exposed through GetSchema( ) method, 906
      retrieving for a database, 768-772
      SQL Server columns, retrieving, 791
methods
      CLR stored procedures, 842
      ExecuteNonQuery( ), 738
      GetRows( ), 422
      GetString( ), 419
      implementing CLR DML triggers, 869
      SqlBulkCopy, 895
Microsoft
      Search services, 18
      SQL Server Books Online, 20
Microsoft Access (see Access)
Microsoft Distributed Transaction Coordinator (see MSDTC)
Microsoft Excel (see Excel)
Microsoft Message Queuing (MSMQ), 232, 234
Microsoft Outlook, 1
Microsoft SQL Server (see SQL Server)
Microsoft.ACE.OLEDB.12.0 driver, 40
Microsoft.Data.Odbc namespace, 31
Microsoft.SqlServer.Server namespace, 833
Microsoft.SqlServer.Smo assembly, 766
Microsoft.Win32 namespace, 826
mirroring (database), 902
MissingPrimaryKeyException, 248
MissingSchemaAction enumeration, 400, 402
MissingSchemaAction property (DataAdapter), 171, 172, 173
modification of data, controlling with DataView, 357-361
ModifyExcelData program (example), 302-305
ModifyTextFileData program (example), 306-308
MoveNext( ) method, 214
MSDAORA (Oracle OLE DB provider), 27
MSDataShape provider, 267
MSDN Library, xviii
      DataBinder class and Eval( ) method, 524
      expression columns, syntax, 85
      MSMQ (Microsoft Message Queue), 234
      ODBC API, 50
MSDTC (Microsoft Distributed Transaction Coordinator), 18, 441, 446
      configuring in Windows, 443
MSMQ (Microsoft Message Queuing), 232, 355
Multiple Active Result Sets (MARS), 662, 893
MyDataClassesDataContext class, 920

N[ Top ]
namespaces
      for a serialized Rowset, 437
      XML classes in .NET, 608
NavigatingParentChildTables program (example), 180-181
NCLOB values, conversion to strings, 733
Nested property (DataRelation), 641
NestManualTransaction program (example), 453-455
.NET Framework
      data providers, 1
      ODBC .NET data provider, 31
      Oracle .NET data provider, 26
      versions 2.0, 3.0, and 3.5, xiv
      (see also data providers; data sources)
Network Address attribute, 19
Network Library attribute, 19
network name of a computer, 18
network protocols, SQL Server, 20
      no longer supported as of SQL Server 2005, 20
NetworkStream class, 396
NewGuid( ) method (Guid), 319
NewRow( ) method, 375
NEXT paging operation, 692, 695
NextResult( ) method
      DataReader class, 168, 172, 386
      OracleDataReader class, 190
NEXTVAL keyword, 301
NonSerializedAttribute attribute, 396
notifications, SQL Server, 889-893
NTFS (Windows NT File System), 37
NTFS encryption, 11
NTILE( ) function, 278
Null property, 861
null values
      adding rows with auto-incrementing column, 94
      empty result set or RefCursor result set, 138
      filtering null field values in DataTable, 252
      passing to query parameter, 190-193
      replacing in strongly typed DataSet, 130-133
      strongly typed DataSet, methods for, 156
Null( ) method, 857
nullValue annotation, 129
NUMBER type (Oracle), 83
nvarchar (max) data type, 724, 900

O[ Top ]
O/R (Object Relational) Designer, 216, 222, 917
      generating C# object model, 918
Object data type, 266
object model, 216
      C#, 918
      LINQ to SQL, 222, 918
Object Relational Designer (see O/R Designer)
objects, relational data as, 222
OCI (Oracle Call Interface), 26
ODBC, 1
      connecting Oracle databases, 27
      connecting to an ODBC data source, 29
      connection pooling, 53
            counters, 64
            support by the driver manager (DM), 50
      connection to SQL Server database, 16
      data types and accessors for .NET data provider, 82
      drivers installed on Windows, 765
      enumerating drivers, 826-827
      monitoring connection pooling, 59
      performance monitoring, 62-64
      Programmer's Reference, 50
      providers compatible with ODBC.NET data provider, 31
OdbcConnection class, 31
OdbcDataReader class, 30
OdbcFactory class, 762
OLE DB, 1, 224
      Access Database Engine (ACE) driver, 305
      accessing Excel as a data source, 228
      ADOX support, 819
      batch query and FillSchema( ) method, 171
      COMPUTE BY statement from Command object, 261
      connecting Oracle databases, 27
      connecting to a data source, 28
      connecting to password-protected Access database, 33
      connection pooling, 52
      connection strings in UDL files, 10
      connection to a text file, 40
      connection to Access database, 32
      connection to Excel workbook, 38
      connection to SQL Server database, 16
      Data Shaping Service, 266
      data types and accessors for .NET data provider, 81
      Excel as a data source, 228
      executing SHAPE command, 264
      Jet 4.0 or later, 297
      listing providers, 822-826
      positional parameter markers, 184
      providers on Windows systems, 765
      resource pooling, 49
      Shape language, Data Shaping Services, 236
      SQL Server, accessing data from heterogeneous sources, 243
OLE DB Jet provider, accessing text files, 222
OLE DB Service Component, displaying data Link Properties dialog box, 56
OLE DB Services attribute, 52
OleDbCommand class, 261
OleDbConnection class, 29, 816
      GetOleDbSchemaTable( ) method, 365, 778, 819
OleDbDataAdapter class, 226
      key/index information for Excel Workbooks, 305
OleDbEnumerator class
      GetElements( ) method, 822, 825
      GetEnumerator( ) method, 822, 825
OleDbFactory class, 762
OleDbSchemaGuid class, 778
OleDbTransaction class, 455
OnDataRowUpdated event, 485
one-to-many relationships between parent and child records, 182
OnRowUpdated event (DataAdapter), 297
OnRowUpdating event, 485
OPEN XML, 609
Open( ) method, SqlConnection class, 829
OPENDATASOURCE function, 242, 244
OPENROWSET function, 242, 244
OpenXML, 651-657
      OPENXML command, 656
      Transact-SQL extension, 699
optimistic concurrency, 496
optimization
      caching and application performance, 688
      SQL stored procedures, 660, 712-716
      (see also performance)
OR (||) operator, 213
Oracle, xix, 1
      batch SQL statements and, 171
      connection pooling, 51
      connection string pooling attributes, 48
      connection to a database, 24
      data types and accessors for .NET data provider, 83
      Microsoft ODBC Driver for, 31
      null reference for result set, 138
      NUMBER type, 83
      reading and writing large data, 730-734
      retrieving multiple result sets, 187-190
      sequences, 285, 297-301
      SQL syntax, 795
      versions, xv
Oracle package
      body, 187
      header, 187
OracleClient assembly, 24
OracleClientFactory class, 762
OracleConnection class, 874
OracleDataAdapter class, 190, 733
OracleDataReader class, 190
      typed accessors, 733
OracleSequenceValue program (example), 299
OracleSequenceValue table (example), 298
OracleType.Cursor data type, 187, 190
ORDER BY clause (SQL), 252
orderby clause (LINQ query), 213, 214
out keyword, 843
OUTER APPLY, 284
Outlook, 1
output parameters
      batch SQL commands and, 294
      returned by CLR stored procedures, 843
      stored procedure, retrieving, 199-202

P[ Top ]
Page class, DataBind( ) method, 524
Page_Contact stored procedure (example), 690-692
PageOrders stored procedure (example), 689
paging, 659
      improving performance, 689-694
Parameter class, 193
ParameterCollection class, 182, 184, 199
      Add( ) method, 193
      AddWithValue( ) method, 193
ParameterDirection enumeration, 199, 202
parameterized query, executing, 182-184
parameterized SQL statements (INSERT and UPDATE)
      using with Excel workbooks, 302-305
      using with text files, 306-309
parameters
      custom updating logic and, 743
      output, retrieving from a stored procedure, 199-202
      passing null value to query parameter, 190-193
      stored procedures, getting at runtime, 330-335
      table-valued, 193-196, 922
Parameters collection, 333
Parent (DataRelationName), 109
Parent table (example), 465
parent/child rows with autoincrementing keys, 314-317
ParentAutoincrementKey table (example), 314
ParentUpdateManyMany table (example), 335
      creating stored procedures for, 337-339
Parse( ) method, 857, 862
PassNullParameter stored procedure (example), 190
PassNullValueToStoredProcedureParameter (example), 191
passwords
      Access database, 33
      changing for SQL Server, 828, 905-906
      database connections, 5
      secure, 418
performance
      DeriveParameters( ) method and, 334
      improving by caching data, 685-689
      improving by canceling a query taking too long, 683-685
      improving by executing multiple commands on a connection, 660-662
      improving by filling DataSet asynchronously, 679-682
      improving for DataReader with column ordinals, 709-712
      improving for DataReader with typed accessors, 706-709
      improving for paging, 689-694
      improving while filling a DataSet, 716-720
      improving with asynchronous DataReader, 675-678
performance (continued)
      improving with asynchronous SQL statement execution, 662-669
      improving with bulk copying, 699-706
      improving with bulk loading, 695-699
      improving with multiple asynchronous SQL statements, 669-674
      techniques for improving, 658-660
performance counters
      ODBC connection pooling, 62, 64
      SQL connection pooling, 61
periods (thread timer), 747
Persist Security Info connection string attribute, 5
Person.GetContacts stored procedure (example), 165, 196, 199
pessimistic concurrency, 442
PIA (Primary Interop Assembly), 56, 817
PictureBox controls, 596
Pipe property (SqlContext), 834
PIVOT operator, 279-282
      syntax, 282
PL/SQL, DDL to create Oracle sequences table, 298
polling, 881
      AsyncDataReaderPolling (example), 676
      IAsyncResult interface using IsComplete property, 884-886
Polygon program (example), 855-857
pooling connections (see connection pooling)
port numbers
      custom port for SQL Server instance, 18
      Oracle database connections, 27
      SQL Server, 21
Position property, 578
PositionChanged event, BindingSource control, 598, 602
PreserveChanges argument (Merge( ) method), 402
PREVIOUS paging operation, 692, 695
Primary Interop Assembly (PIA), 56, 817
primary key constraints
      creating on a new database table, 803
      retrieving for a DataSet, 173
primary keys
      auto-incrementing, 93-94
      changing in a database, 285
      creating single- and multi-column, 90-92
      GUID used as, 317-319
      MissingPrimaryKeyException, 248
      parent/child table records added with autoincrementing key, 317
      updated in related tables, referential integrity problems, 481
      updating value, 326-330
PrimaryKey property (DataTable), 90, 92, 97, 107
ProductInventory.xml file (example), 630
Program_DataSetFilled( ) method, 679
properties, data binding (Web Forms controls), 526
PropertyCollection class, 747
PropertyGrid controls, 54
      SelectedObject property, 55
PropertyManager class, 578
Provider key-value pair, OLE DB, 29
provider statistics (SQL Server), 753, 903
provider types, Oracle database connections, 26
provider-independent code, writing, 754-757
providers (see data providers; data sources)

Q[ Top ]
queries
      asynchronous execution (see asynchronous processing)
      exporting results as a string, 419-422
      exporting results to an array, 422-426
      LINQ, 212, 912-915
      retrieving SQL Server query plan, 788-791
      template queries, 609
Query Analyzer (SQL Server), 18
query notifications, 748-752
QuotePrefix and QuoteSuffix properties (CommandBuilder), 361

R[ Top ]
RadioButton controls, binding to data field, 597-603
RadioButtonList controls, 602
RaiseAndHandleStoredProcedureError program (example), 203
RaiseError stored procedure (example), 202
RAISERROR function, 204
      online information, 206
random sample of records, retrieving, 267-269
RANK( ) function, 277
ranked result set, 274-278
RC2CryptoServiceProvider class, 413
Read( ) method (DataReader), 161, 163, 167
ReadDirectoryFileInfo program (example), 846-848
ReadExcelData program (example), 227
ReadOnly property, 173
      DataGridView controls, 583
ReadWriteLargeData program (example), 720-724
ReadWriteLargeOracleData program (example), 730-734
ReadWriteUdt program (example), 727
ReadXml( ) method, 612, 620
      loading a DataSet from XML DiffGram, 627
ReadXmlDirectlyFromSqlServer (example), 641
ReadXmlSchema( ) method, 614-620
Receive( ) method (MessageQueue), 234
Record objects, 373
records meeting criteria, counting, 163
Recordset class, 373
      converting a DataSet to a Recordset, 428-439
      converting a Recordset into an array, 425
      GetRows( ) method, 423
      GetString( ) method, 421
      loading a Recordset into a DataSet, 426-428
recursive queries (CTE), 272-273
REF CURSOR data types (Oracle), 187, 190
referential integrity problems, avoiding in related table updates, 464-481
refreshing data, 659
      automatically refreshing a DataTable periodically, 743-747
      automatically refreshing a DataTable upon changes, 748-752
region codes, 574
registry
      connection pooling timeout entries, 49
      default OLE DB services enabled for a provider, 52
      OLE DB Resource pooling, 49
RejectChanges( ) method, 257
related data, referential problems in related table updates, avoiding, 464-481
      (see also DataRelation class)
relational data as objects, 222
relational database management systems (RDBMS), 182
relational databases, junction table, 286
Relations property (DataSet), 107
relationships
      DataSet, creating from SQL Server relationships, 804-814
      LINQ associations, 222
      (see also DataRelation class)
remote procedure calls (RPC), 396
Remove( ) method
      Cache class, 689
      DataRowCollection class, 258
      PropertyCollection class, 747
RemoveAt( ) method, DataRowCollection, 258
Repeater controls, 530-534
      binding to a data control or a class, 534
      templates, 534
ReplaceNullValueStronglyTypedDataSet program (example), 132
reports, combining data sources, 241
ResetStatistics( ) method (SqlConnection), 754, 903
ResolveCommandBuilderKeywordConflict program (example), 361-363
ResolveDataConflict program (example), 503-508
ResolveDataConflict table (example), 502
RestrictionNumber enumeration, 771, 908
restrictions
      CLR UDTs, 862
      for a metadata collection, 908
result sets
      empty, testing query return for, 161-163
      MARS, 662, 893
      multiple, retrieving with Oracle data provider, 187-190
      multiple-row dynamic result set created by CLR stored procedure, 841
      query not returning a result set, executing, 135-137
      query returning multiple, 168-172
      ranked result set, 274-278
      retrieving random sample of records, 267-269
      returned by CLR stored procedures, 843
      single-row dynamic result set created by CLR stored procedure, 839
RetrieveColumnDefaultValueSqlServer (example), 780-782
RetrieveColumnLengthSqlServer (example), 784
RetrieveConstraintsSqlServer program (example), 486-490
RetrieveDatabaseMetadata program (example), 768-770
RetrieveDatabaseSchema program (example), 772
RetrieveDataIntoDataTable program (example), 145
RetrieveDataOraclePackage program (example), 188
RetrieveDataUsingDataReader program (example), 139
RetrieveHierarchicalDataSetBatch program (example), 177
RetrieveHierarchicalDataSet program (example), 175-177
RetrieveImage.aspx.cs program (example), 567
RetrievePivotTable program (example), 279
RetrieveSingleValueFromQuery program (example), 137
RetrieveSqlServerColumnMetadata (example), 791
RetrieveSqlServerQueryPlan (example), 789-790
RetrieveStatistics program (example), 752
RetrieveStatistics( ) method
      Connection class, 752
      SqlConnection class, 754, 903
RetrieveUnpivotTable program (example), 280
RetrieveUpdateErrors program (example), 311
RetrieveUpdateErrors table (example), 309
RetrieveValuesDataReader (example), 141
RetrieveValuesDataTable (example), 147
ReturnValue class, ParameterDirection property, 199
RijndaelManaged class, 413
ROLLBACK command, 460
Rollback( ) method
      SqlTransaction class, 456
      Transaction class, 451
ROLLUP operator, 263
roundtrips, managing, 660
Row property (DataView), 159
ROW_NUMBER( ) function, 277
RowCancelingEdit event handler, 552
RowChanging event handler, 317
RowCommand event handler, 552
RowConstructor table (example), 320
@@ROWCOUNT function, 165
@@ROWCOUNT variable, 168
RowDeleting event handler, 552
RowEditing event handler, 553
RowError property (DataRow), 313
RowFilter property (DataView), 85, 246, 249, 251, 252
Rows property (DataTable), 163
RowState property (DataRow), 257, 402
RowStateFilter property (DataView), 252
      retrieval or verification of a data version, 258
RowUpdated event, 295, 911
      da_RowUpdated event handler, 497
      DBConcurrencyException, handling, 502-509
RowUpdatedEventArgs class
      CopyToRows( ) method, 911
      properties, 507
RowUpdating event, 326, 482, 738, 911
      data source, updating with changes from DataSet or DataTable, 741
      DataAdapters, 485
      updating data in Web Form GridView control, 553
RowUpdatingEventArgs class, 484
rowversion data type, 501
RPC (remote procedure calls), 396
<rs:data> tags, 438
runtime statistics for SQL Server, 752-754

S[ Top ]
s:AttributeType column element, 438
s:datatype element, 439
s:ElementType row element, 438
salt, 418
salting, password, 415
Save( ) method, SqlTransaction class, 456
SaveLoadDataSetXml (example), 610
savepoints, 452
      nested manual transaction, 453, 456
scalar-valued functions (SVF)
      creating, 843-846
      executing, 206-208
      T-SQL statements to create and manage, 832
schema.ini file, 42-43, 224
      format options, 42, 225
Schema.xsd file (example), 617-620
schemas
      database
            discovery API, 906-909
            retrieving information from metadata, 768-772
            retrieving information from SQL Server, 772-779
      DataReader object, 134
      DataTable, 381
            creating a database table from, 799-803
      defining for DataSet objects, 65
      FillSchema( ) method and OLE DB provider, 171
      information schema views, 335
      MissingSchemaAction enumeration, 402
      RetrieveUpdateErrors table, 310
      retrieving for a DataSet, 172-175
      SQL Server database, getting information on, 764
      writing and reading XSD schema information, 614
      XML
            associated with xml data type, 638
            converting DataSet to ADO Recordset, 428
            format in ADO, 438
      XML Schema Definition Tool (xsd.exe), 152
      XML, controlling null values, 130
      XSD (XML Schema Definition) language, 608
SCOPE_IDENTITY( ) function, 294
Search services (Microsoft), 18
SearchWindowsFormsDataGridView program (example), 603-606
secret key algorithms, 412
SecureLoginCredentials program (example), 415-417
security, 373
      connection credentials, 6
      error handling, 205
      integrated, 6
            ASP.NET connection to SQL Server, 21
      login credentials, 415-418
      Persist Security Info connection string attribute, 5
      tips on, 7
select clause (LINQ query), 213, 214
SELECT statements, 213
      calling scalar-valued function, 208
      retrieving records returned by table-valued function, 209
      TOP and WHERE clauses, 695
Select( ) method (DataTable), 246, 249, 252
      filtering null field values, 252
      retrieval or verification of a data version, 258
SelectCommand (DataAdapter), associating a transaction with, 464
SelectedIndexChanged event, 561, 565
SelectionIndexChange event, 580
SelectNodes( ) method, 638
SelectSingleNode( ) method, 638, 640
SelectTopNRowsDataTable program (example), 259
Send( ) method
      MessageQueue class, 232
      SqlPipe class, 835
SendResultsEnd( ) method (SqlPipe), 842
SendResultsRow( ) method (SqlPipe), 835, 842
SendResultsStart( ) method (SqlPipe), 842
Sequence.Data.OracleClient assembly, 299
sequences, 285
      getting a value from Oracle, 297-301
      OracleSequenceValue_Sequence (example), 299
Serializable attribute, 857, 861
serialization, 372
      DataSet into XmlDataDocument, 439
      deserializing DataSet data, 397-399
      DiffGram, use of, 625
      objects into XML documents or streams, 608
      serializing DataSet contents, 393-397
      XML, 862
Serialize( ) method, 396
SerializeData program (example), 393-395
Server class, 794
Server Management Objects (see SMO)
server-based applications, 6
server-based timer, 747
servers, database server-dependent sampling method, 269
Set Database command, 34
SET FMTONLY ON statement, 791
SET FMTONLY statement, 792
SET SHOWPLAN_TEXT statement, 788
SET statements, 765, 790
      categories of, 790
SetColumnError( ) method (DataRow), 310, 313
SHA1Managed class, 418
SHA256Managed class, 418
SHA384Managed class, 418
SHA512Managed class, 418
Shape language, 236
      using to retrieve hierarchical data, 264-267
ShapeProviderRetrieveHierarchicalData program (example), 264-266
SHOWPLAN_ALL, 791
SHOWPLAN_TEXT, 790
"Simple Object Access Protocol (SOAP) 1.1", 396
simple data binding, 519, 523
SimultaneousTransaction program (example), 443-446, 457-460
single sign-on, 6
single-threaded apartment (STA) model, 682
sliding expiration (cached items), 689
SMO (Server Management Objects), 764, 767, 794
      adding a table to SQL Server database, 796, 798
      catalog views, 485, 490
      creating a database, 793
SmoApplication, EnumAvailableSqlServers( ) method, 766, 767
snapshot isolation (in transactions), 901
SOAP XML stream, serializing an object into, 396
SoapFormatter classes, 396
Sort property (DataView), 85, 249, 252, 259, 261, 606
      filtering null field values, 252
sorting data in a DataTable, 249-252
SourceVersion property, 326, 330
sp_configure system stored procedure, 831
sp_help stored procedure, 788
sp_helpconstraint system stored procedure, 765, 783
sp_sproc_columns stored procedure, 334
sp_xml_preparedocument stored procedure, 657
sp_xml_removedocument stored procedure, 657
SpDynamicResultSet (example), 839
SpDynamicResultSet2 (example), 841
SpecifyLockingHints program (example), 514-517
SpEmployeesInShift program (example), 836
SpOutputParameter_Message_ReturnCode (example), 838
SQL (Structured Query Language)
      asynchronous execution of a statement, 662-669
      batch queries and Oracle stored procedures, 189
      batch queries, multiple table mappings, 77
      batch query returning multiple result sets, 168-172
      batch SELECT statement defined by DataAdapter, 107
      batch T-SQL queries and column mappings, 107
      categories of statements, 795
      CREATE SEQUENCE command, 301
      create table StoreXmlDatabaseField, 632
      create table TableWithXmlDataType, 635
      create table UpdateUsingOpenXml, 651
      creating and executing parameterized query, 182-184
      executing simultaneous statements asynchronously, 669-674
      execution of statements with Command, 134
      LINQ to SQL, 212, 917-922
      loading a hierarchical DataSet using a batch query, 177
      new T-SQL statements supporting CLR integration, 831-833
      parameterized insert and update statements, 302
      statements referencing Excel data, 228
      statements versus LINQ queries, 212
      stored procedures, xix
SQL Profiler, 59
SQL Server, 1
      @@ROWCOUNT variable, 168
      accessing data from heterogeneous sources, 243
      adding a table to a database, 796-799
      APPLY operator, 284
      bulk copying, 699-706
      bulk loading, 695-699
      capturing data changes, 366-371
      changing user password, 828, 905-906
      CLR integration, 830-873
      common table expression (CTE), 271
      connecting to a database, 13-16
      connecting to a named instance, 17
      connecting to, using IP address, 18
      connection from ASP.NET using integrated security, 21
      connection pooling, 51
      connection string pooling attributes, 47
      creating a new database, 793-795
      data types and accessors for .NET data provider, 80
      DataReader methods returning data as SQLServer types, 143
      DBMS transactions, using with ADO.NET transactions, 456-460
      debugging a stored procedure, 712-716
      debugging and optimizing stored procedures, 660
      determining length of columns, 784-788
      documentation, xviii
      enumerating servers, 766-767, 902
      executing a scalar-valued function, 206-208
      executing a table-valued function, 208
      identity column, 285
      identity values, 289-294
      inserting multiple rows using a single T-SQL statement, 319-322
      integrated security, using in connections, 6
      large-value data types, 900
      loading large amounts of data, 659
      locking hints, specifying, 514-518
      merging data in two database tables, 403-406
      monitoring connections and connection pooling, 59
      named parameters in queries, 184
      notifications, 889-893
      ODBC Driver, 31
      PIVOT and UNPIVOT operators, 279-282
      querying a database using LINQ, 216-222
      ranking functions, 277
      reading and writing large-value data, 720-725
      reading XML data directly from, 641-642
      relationships, creating DataSet relationships from, 804-814
      retrieval of hierarchical data, using Shape language, 264-267
      retrieving column default values from, 780-784
      retrieving column metadata without returning data, 791
      retrieving constraints from a database, 485-496
      retrieving data using a stored procedure, 185-186
      retrieving database schema information, 772-779
      retrieving provider statistics, 903
      retrieving query plan, 788-791
      retrieving runtime statistics, 752-754
      ROLLUP operator, 263
      SQL Server 2005 and SQL Server 2008, xiv
      stored procedures, 334
      support for XML, 609
      Surface Area Configuration tool, 242
      TABLESAMPLE clause, 268
      table-valued parameters, 196, 922
      TOP clause, 261
      UDTs (user-defined types), 901
      UDTs, reading and writing, 725-729
      using OpenXML to update multiple changes, 651-657
      version 7.0, COMPUTE and COMPUTE BY clauses, 263
      XML data type column, 635-638
      XPath implementation, 640
SQL Server Agent, 367
SQL Server Authentication, 22
SQL Server Books Online, 20
SQL Server Browser service, 766
SQL Server Distributed Management Objects (SQL-DMO), 764
SQL Server Management Objects (see SMO)
SQL Server Management Studio, 18
SQL Server Profiler, monitoring connection pooling, 59
SqlBulkCopy class, 704, 895-896
      overloaded constructors, 704
      properties controlling bulk copy, 706
      transactions dedicated to bulk copy operations, 899-900
      WriteToServer( ) method, 700, 703, 705
SqlBulkCopyColumnMapping class, 898
SqlBulkCopyOptions enumeration, 705
SqlClient class, 18
SqlClientFactory class, 762
      creating an instance and outputting data, 878
SqlCommand class
      asynchronous processing methods, 886
      ExecuteXmlReader( ) method, 642
      methods for asynchronous processing, 666-668, 881
SqlConnection class, 17, 874
      ChangePassword( ) method, 828, 906
      enabling and retrieving statistics, 754
      InfoMessage event, 202, 205
      Open( ) method, 829
      StatisticsEnabled property, 903
SqlConnectionStringBuilder class, 11
SqlContext class, 833
      TriggerContext property, 873
SqlDataAdapter class, 724
SqlDataReader class, 80
      GetBytes( ) method, 725
      typed accessor methods, 724
SqlDataRecord class, 835, 840
SqlDataSourceEnumerator class, 902
SqlDataSourceEnumerator.Instance.GetDataSources( ) method, 766, 768
SqlDbType enumeration, 193, 196, 729
SqlDependency class, 748, 751, 889
SqlDependencyCache class, 752
SQL-DMO (SQL Server Distributed Management Objects), 764
SqlException, 206, 685
SqlFacet attribute, 860
SqlInfoMessageEvent, 205
SqlInfoMessageEventHandler, 205
SqlMessageEventHandler( ), 203
SqlMetaData class, 840
SQLMetal Tool, 222
SqlMethod attribute, 862
SqlNotificationRequest class, 752, 889, 891
      properties, 893
SqlParameter class, UdtTypeName property, 729
SqlPipe class, 834
      ExecuteAndSend( ) method, 837
      Send( ) method, 835, 837, 840
      sending dynamically created result sets with multiple rows, 842
      sending messages and tabular result sets, 843
      SendResultsRow( ) method, 835
SqlProcedure attribute, 842
SqlRowUpdatingEventArgs class, 741
SqlTransaction class, 456
SqlTrigger attribute, 866, 869
SqlTriggerContext class, 834, 873
      TriggerAction property, 870, 871
SqlType objects, 80
SqlUserDefinedAggregate attribute, 853
SqlUserDefinedType attribute, 857, 858, 861
SQLXML Bulk Load 4.0 library, 697
SQLXML managed classes, 609, 648-650
SqlXmlAdapter class, 648, 650
SQLXMLBulkLoad object, 697
SqlXmlCommand class, 648
      methods, 648
      properties, 649
SqlXmlParameter class, 648
      properties, 649
STA (single-threaded apartment) model, 682
Start( ) method
      Thread class, 682
      Timer class, 747
statistics (runtime), SQL Server, 752-754, 903
StatisticsEnabled property (SqlConnection), 754, 903
Status property
      Command class, 739
      RowUpdatedEventArgs, 509
      RowUpdatingEventArgs, 484
Stop( ) method, Timer class, 747
stored procedures, xix
      batch command contained in, 171
      catching and handling errors, 202-206
      creating CLR stored procedures, 836-843
      creating for ChildUpdateManyMany table (example), 339
      creating for JunctionUpdateManyMany table (example), 340
      creating ParentUpdateManyMany table (example), 337-339
      debugging, 712-716
            from managed code, 714
            in standalone mode, 714
      debugging and optimizing, 660
      error involving transaction count, 460
      extended, 830
      getting parameters at runtime, 330-335
      Insert_OracleSequenceValue (example), 298
      InsertGetSqlServerIdentityValue (example), 290
      mapping to DataContext methods, 222
      Page_Contact (example), 690-692
      PageOrders (example), 689
      passing data to table-valued parameter, 193-196
      passing null value to a parameter (example), 191
      PassNullParameter (example), 190
      Person.GetContacts (example), 165
      referential integrity problems in related table updates, avoiding, 466-471
      retrieving a result set, 185-186
      retrieving a return value from, 196-199
      retrieving an output parameter from, 199-202
      single values, retrieving, 137
      sp_configure, 831
      sp_help, 788
      sp_helpconstraint, 783
      sp_helpcontsraint, 765
      sp_proc_columns, 334
      sp_xml_preparedocument, 657
      sp_xml_removedocument, 657
      SyncUpdateUsingOpenXml, 652
      sys.sp_cdc_disable_table_change_data_capture, 368
      T-SQL statements to create and manage, 832
      updating many-to-many relationships, 336
      xp_enum_oledb_providers, 825
StoredProcedureOutputValueDataReader (example), 200
StoredProcedureReturnValueDataReader program (example), 197
StoreXmlDatabaseField (example), 633
St