Errata

ADO.NET in a Nutshell

Errata for ADO.NET in a Nutshell

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Printed
Page 17
5th paragraph

OleDbConnection con = new OleDbConnection("Data Source=localhost;" +
"Initial Catalog=c:Nortwdind.mdb;" +
"Provider=Microsoft.Jet.OLEDB.4.0");

should read:

OleDbConnection con = new OleDbConnection(
"Data Source=c:Northwind.mdb;" +
"Provider=Microsoft.Jet.OLEDB.4.0");

Anonymous   
Printed
Page 21
Last paragraph under Disposing Connections

The paragraph states that Dispose() removes the connection from the connection pool
and thus removes the key benefits of connection pooling. This is incorrect. Take a
look at SqlConnection for example. The Open() method obtains a SqlInternalConnection
from the connection pool and assigns it to the _internalConnection field. The Close()
method returns this internal connection to the pool. The Dispose() method actually
calls Close() so the internal connection is also returned to the pool in that case.
The difference between Dispose() and Close() is that the SqlConnection object should
not be reused after Dispose(), whereas after Close() the same SqlConnection object
can be reopened. This has no bearing on the SqlInternalConnection object and thus
makes no difference to the connection pooling mechanism.
This is a known error in the MSDN help.

Anonymous   
Printed
Page 33
bottom of the page

cmd.Add(param);
should be:
cmd.Parameters.Add(param);

Anonymous   
Printed
Page 34
top of page

SqlParameter param = cmd.Add("@Description", SqlDbType.VarChar,
88, "Description");
should be:
SqlParameter param = cmd.Parameters.Add("@Description", SqlDbType.VarChar,
88, "Description");

Anonymous   
Printed
Page 53
Line 14

Error in codeline "if (r[i] != DBNull.Value)"
Correct is: "if (r[i] == DBNull.Value)"

Anonymous   
Printed
Page 76
2nd Paragraph from the bottom

"The Contains() method returns a value indicating whether a column with a specified name exists in the
collection"
Should read:
"The Exists() method returns a value indicating whether a column with a specified name exists in the
collection"

Anonymous   
Printed
Page 78
middle of the page

"The Contains() method returns a value indicating whether a column with a specified name exists in the
collection"
should read:
"The Exists() method returns a value indicating whether a column with a specified name exists in the
collection"

Anonymous   
Printed
Page 84
First example at the top of the page

The DataRow[] is instantiated as "errorRow" but, subsequently, is used (in the code)
as "errorRows".

Anonymous   
Printed
Page 121
Last entry in Table 12-1

Comment shows filter criterion as "...at least $1000", but the filter selects for
more than $1000, not at least $1000.

Anonymous   
Printed
Page 133
third line from page top

As shown, "...propertyFieldBinding; = new...".
Should read "...propertyFieldBinding = new...".

Anonymous   
Printed
Page 195
second paragraph, third line

"As the isolation level increases, ..."
It should read,
"As the isolation level decreases, ..."

Anonymous   
Printed
Page 215
Table 17-4

The heading for Table 17-4 should read "MappingType values"

Also, in the "SimpleContent" description,
MappingStyle.Element
should be:
MappingType.Element

Anonymous   
Printed
Page 216
top of page

Col.ColumnMapping = MappingStyle.Attribute;
should be:
Col.ColumnMapping = MappingType.Attribute;

Anonymous   
Printed
Page 242
top of page

The OdbcConnection and OleDbConnection classes exhibit the same behavior in that
Dispose() either calls Close() or executes the same code that Close() does. The
underlying connection pooling mechanism (if enabled by the provider) should not be
disabled by Dispose() as stated in the book.
This is a known error in the MSDN help.

Anonymous   
Printed
Page 253
Table 19-3

Table is incorrectly titled "CommandType values"
it should be titled "UpdateRowSource values"

Anonymous   
Printed
Page 354
near the bottom of the page, the first line below the subhead example

"... uses the GetParentRow() method ..."
It should read
"... uses the GetParentRows() method ..."

Anonymous   
Printed
Page 383
comment in next to last block of code

comment says
RowState = Inserted
it should be:
RowState = Added

Anonymous   
Printed
Page 397
2nd para under "notes"

Reference to Table 29-3 is wrong, it should say "Table 19-3"

Anonymous