object databases, 639–640
object-relational (OR) mapping in .NET, 637–673
advantages of, 640
code listings
SelectVideosCheckedOutToUser, 665
User Object in the User Component, 655–656
UserData Object in the User Component, 656–657
UserDataAccess Object in the User Component, 657–659
UserTestCase Object, 660–661
VideoCheckInCheckOut Component, Test Case for, 671–673
VideoCheckInCheckOut Object, 667–670
VideoTape Component, Test Case for, 653–654
VideoTape Object, 645–648
VideoTapeData Object, 643–644
VideoTapeDataAccess Object, 648–652
DataSet inadequacy, 638
design tradeoffs, 665–673
component isolation, 666–667
component isolation workaround, 667–670
stored procedures, logic in, 665–666
VideoCheckInCheckOut test case, creating, 670–673
fundamentals, 637
object databases, 639–640
Video Store Application, basic design, 640–665
Check In/Check Out component, 663–665
data access component, 648–652
data object, 643–644
database design, 641–643
dependencies, managing, 661–662
mapped object, 644–648
User component, 654–659
User test case, 659–661
video tape test case, building, 652–654
ODBC .NET data provider, 375–391
Access databases, accessing, 378–380
basics, 375
code listings
Employees.xls, Accessing Using ODBC Data Provider, 390
MySQL Database, Accessing, 382
Reading Data from Northwind Using ODBC Data Provider, 379–380
TextDB.txt file, Accessing, 388
Excel databases, accessing, 389–390
installing, 376–377
MySQL databases, accessing, 380–382
.NET 1.1 updates, implementing, 391
ODBC .NET data provider classes, 377–378
text file databases, accessing, 382–388
accessing text files, 385–388
exporting Access table to text file, 383–385
ODBC (Open Database Connectivity)
basics, 2–4
data source names (DSNs), 34, 80, 832–833
drivers, 80
ODBC DSNs, Reading (code listing), 832–833
OdbcConnection, 38
ODP.NET data provider, 414
OLAP (On-Line Analytical Processing)
server cubes, 718
server data, accessing, 718–724
OLE DB (Object Linking and Embedding Database)
OleDb data provider
compared to others, 80
implementing transactions in, 820–821
Oracle databases and, 414
OleDb Database, Connecting to (code listing), 143
OleDbCommand, creating and using, 153–154
OleDbCommand, Using to Access an Access Database (code listing), 154
OleDbConnection, 38
OleDbConnection class, 140
OleDbDataAdapter command properties, 169
overview of, 5–6
services settings, 146–147
On Error statements (VB), 359
OnDataBinding method, 539
Online Job Board Application
database schema, 610–611
developing, 611–635
Contact.aspx page, 617–618
DisplayData.aspx and Resumes.aspx pages, 623–632
dnjHeader.aspx page, 632–633
improving/modifying application, 635–636
Login.aspx page, 612–615
PostJob.aspx page, 618–620
PostResume.aspx page, 620–623
Register.aspx page, 615–616
running the application, 633–635
specifications, 609–610
Opening a File (code listing), 360
optimistic concurrency
ADO.NET default, 44
control, 199
Optimistic Concurrency (code listing), 202–203
optimistic locking, 790–791
Oracle
Database, Connecting to (code listing), 417–418
Enterprise Manager, 393
managed provider, 413
Oracle .NET data provider, 413–426
adding reference to, 415
basics, 413–414
classes, 416–425
BFILEs and LOBs, reading, 425
connections, creating, 416–418
OracleConnection class, 416–417
OracleDataReader class, 421–423
reading fast data using DataReader, 421–423
reading/writing data using DataAdapter, 423–424
SQL commands, executing, 418–421
code listings
Connecting to an Oracle Database, 417–418
Constructing SQL INSERT, UPDATE, DELETE Queries, 421
ExecuteSqlQuery Method, 420
FillDataGrid Method, 419–420
Oracle-Specific DataReader Methods, 423
OracleDataAdapter, Reading/Writing Data Using, 423–424
OracleDataReader, Reading Data Using, 422–423
OracleClient data provider, 770
Ordinal and MaxLength properties, Using (code listing), 94
Ordinal property, 93–94
Output Parameter, Executing Stored Procedures with (code listing), 404–405