Cover | Table of Contents | Colophon
[ 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