Errata for MCTS Self-Paced Training Kit (Exam 70-526): Microsoft® .NET Framework 2.0 Windows®-Based Client Development
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 CD-ROM
|
"ImageIndex" should be "ImageList"
One of the Readiness Review assessment questions contains an answer with an incorrect C# component.
The question reads: "Which of the following code examples correctly associates an image from an ImageList component with a Button control? Assume an ImageList component named ImageList1 and a Button control named Button1. (Choose all that apply.)"
In the correct answer change:
Button1.ImageList = ImageList1
Button1.ImageKey = "myImage"
// C#
button1.ImageIndex = imageList1;
button1.ImageKey = "myImage";To:
Button1.ImageList = ImageList1
Button1.ImageKey = "myImage"
// C#
button1.ImageList = imageList1;
button1.ImageKey = "myImage";
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page CD-ROM
|
== should be !=
One of the Readiness Review assessment questions contains an answer with an incorrect C# component.
The question reads: "You created a Windows Forms application. The application performs long-running operations, and you create a BackgroundWorker object named BackgroundWorker1. You create a method named BackgroundWorker1_RunWorkerCompleted to respond when the process has completed successfully, ended in an error, or been cancelled by the user. The method declaration is:"
In the third answer, the first line contains a "==" symbol rather than a "!=" symbol.
Change:
if (e.Error == null)To:
if (e.Error != null)
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page CD-ROM
|
Readiness Review incorrect answer marked as correct
On the Readiness Review Assessment, one of the questions has an incorrect answer marked as correct.
The question reads:
"You create a Windows Forms application. The application acts as a Web services client. Typically, the servers respond quickly; however, one specific type of transaction requires multiple different Web services requests and may take ten or twenty seconds to complete. To enable your application to continue to respond to user input, you implement a BackgroundWorker component to perform the Web services requests.
You want to display a progress bar that regularly updates to inform the user of the progress. What is the best way to do this?"
The following answer should be marked as incorrect:
"From within your form, create a timer that elapses every second.
Respond to the timer by calling BackgroundWorker.ProgressChanged.
Examine the returned value to update the progress bar. "
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page CD-ROM
|
Print should be PrintPage
In the Readiness Review software, one of the andswers to one of the questions refers to Print rather than PrintPage. The question reads:
"You are creating a Windows Forms application that enables users to create a document and print it. What is the simplest way to create a standard Print Preview dialog box?"
Change:
"Implement an event handler for the PrintDocument.Print event. Then, create an instance of PrintPreviewDialog, and use your PrintDocument instance to define PrintPreviewDialog.Document. Call PrintPreviewDialog.ShowDialog."
To:
"Implement an event handler for the PrintDocument.PrintPage event. Then, create an instance of PrintPreviewDialog, and use your PrintDocument instance to define PrintPreviewDialog.Document. Call PrintPreviewDialog.ShowDialog."
|
Microsoft Press |
Jul 13, 2010 |
|
| Other Digital Version |
CD-ROM
|
Missing files needed for Lesson 4 in Chapter 6
The files Customers.fmt and NorthwindCustomers.txt that are needed to complete Lesson 4 in Chapter 6 on page 310 are not located on CD as is stated in the Training Kit.
The following file is available for download from the Microsoft Download Center:
Customers.exe
http://download.microsoft.com/download/1/1/b/11b03076-8ae8-411b-a3cb-9741746ba06f/customers.exe
Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file.
|
Microsoft Press |
May 06, 2010 |
|
| Other Digital Version |
CD-ROM
|
"composite" should be "custom"
In the Readiness Review assessment, Question 27 (526P_6.1.7_01) uses an incorrect control.
Change:
"You are creating a composite control. You want to provide a transparent background color. How can you do this? (Choose all that apply.)"
To:
"You are creating a custom control. You want to provide a transparent background color. How can you do this? (Choose all that apply.)"
|
Microsoft Press |
May 06, 2010 |
|
| Other Digital Version |
CD-ROM
|
Readiness Review answer incorrectly marked correct
One of the questions on the Readiness Review Assessment has an incorrect answer marked as correct.
The question reads:
"You are creating a Windows Forms application that will be deployed to a kiosk environment. The application will be used by thousands of people, including users who have unique visual requirements such as using High Contrast mode.
While developing your application, which of the following guidelines should you follow to ensure that the application will work well in High Contrast mode? (Choose all that apply.)"
The following answer should be incorrect:
"Convey by visual cues or sound any information that is conveyed through color."
|
Microsoft Press |
May 06, 2010 |
|
| Other Digital Version |
CD-ROM
|
Readiness Review correct answer marked as incorrect
On the Readiness Review Assessment, one of the questions has an correct answer marked as incorrect.
The question reads:
"You want to specify a custom icon for your application's shortcut on the Start menu. Which file types can you choose to specify an icon? (Choose all that apply.)"
The following answer should be marked as correct:
".ico"
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 19
|
Property Grid used in place of Toolbox
On page 19, the first sentence of Step 4 reads:
"Drag a Button from the Property Grid to the upper left-hand corner of the form."
It should read:
"Drag a Button from the Toolbox to the upper left-hand corner of the form."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 22 and 23
|
Incorrect code in C# answers
On pages 22 and 23, the aPath line in the C# section of every answer to question 2 reads:
aPath.AddEllipse(0, 0, Me.Width, Me.Height);It should read:
aPath.AddEllipse(0, 0, this.Width, this.Height);
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 25
|
Select should be Double-click
On page 25, the third bullet point is incorrect.
Change:
"Select a control in the Toolbox and double-click the form."
To:
"Double-click a control in the Toolbox."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 31
|
TopBottom should be replaced with TopDown
On page 31, the third sentence of the FlowDirection description of Table 1-6 reads:
"Can be set to LeftToRight, RightToLeft, TopBottom, or BottomUp."
It should read:
"Can be set to LeftToRight, RightToLeft, TopDown, or BottomUp."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 33
|
Column numbering stated to begin at 1 rather than 0
On page 33, the first two sentences of the fourth paragraph read:
"Columns in a TableLayoutPanel are numbers starting at 1, while rows start at 0. Thus, the example shown above adds aButton to the cell in column 3 at row 3, which is actually the 3rd column and the 4th row the user sees."
It should read:
"Columns and rows in a TableLayoutPanel are numbers starting at 0. Thus, the example shown above adds aButton to the cell in column 3 at row 3, which is actually the 4th column and the 4th row the user sees."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 38
|
the words False and True should be reversed
On page 38, the last two sentences in the second to the last paragraph read:
"Note that you cannot set both of these controls to False. For example, if you set Panel1Collapsed to False when the Panel2Collapsed is already set to False, Panel2Collapsed will be set to True."
They should read:
"Note that you cannot set both of these controls to True. For example, if you set Panel1Collapsed to True when the Panel2Collapsed is already set to True, Panel2Collapsed will be set to False."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 43
|
True missing from code sample
On page 43, Answer C to question 1 is missing a parameter.
Change:
' VB
FLPanel1.SetFlowBreak(aButton)
// C#
FLPanel1.SetFlowBreak(aButton);To:
' VB
FLPanel1.SetFlowBreak(aButton, True)
// C#
FLPanel1.SetFlowBreak(aButton, true);
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 44
|
The word "on" in missing from answer B to question 3
On page 44, answer B to question 3 reads:
"Select a control in the Toolbox and draw the form with the mouse."
It should read:
"Select a control in the Toolbox and draw on the form with the mouse."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 53
|
TabOrder should be replaced with TabIndex
On page 53, the 5th property in Tabel 2-1 reads:
"TabOrder"
It should read:
"TabIndex"
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 56
|
spacing should be alignment
On page 56, step 3 of the "To adjust control alignment with the Layout toolbar" section refers to spacing instead of alignment.
Change:
"Adjust the control spacing by clicking the appropriate button."
To:
"Adjust the control alignment by clicking the appropriate button."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 69
|
MouseClickEventArgs should be replaced with MouseEventArgs
On page 69, the first sentence of the 2nd paragraph reads:
"One of the arguments for the Button.MouseDown event handler is an instance of MourseClickEventArgs."
It should read:
"One of the arguments for the Button.MouseDown event handler is an instance of MourseEventArgs."
The last sentence of the 2nd paragraph reads:
"Table 2-3 describes the properties of the MourseClickEventArgs class."
It should read:
"Table 2-3 describes the properties of the MourseEventArgs class."
The first sentence of the 3rd paragraph reads:
"Using the values exposed by the MouseClickEventArgs instance, you can determine the button that was clicked and the position of the mouse wheel."
It should read:
"Using the values exposed by the MouseEventArgs instance, you can determine the button that was clicked and the position of the mouse wheel."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 75
|
right should be left
On page 75, the answer to Quick Check 1 references the right button rather than the left button.
Change:
"The Click event responds to the right button click, and the MouseDown event can be used to respond to other button clicks."
To:
"The Click event responds to the left button click, and the MouseDown event can be used to respond to other button clicks."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 85
|
$12,345.00 should be $12,345.67
On page 85, the ammount indicated in the Displayed Text column of the $99,999.00 row is incorrect.
Change:
"$12,345.00 – Note that the actual currency symbol, thousands separator, and decimal separator will be determined by the control’s FormatProvider."
To:
"$12,345.67 – Note that the actual currency symbol, thousands separator, and decimal separator will be determined by the control’s FormatProvider."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 96
|
MultiSelect should be MultiExtended
On page 96, the description of SelectedItem in Table 3-1 references MultiSelect in place of MultiExtended.
Change:
"Returns the selected item or, if the SelectionMode property is set to MultiSimple or MultiSelect, returns any selected item."
To:
"Returns the selected item or, if the SelectionMode property is set to MultiSimple or MultiExtended, returns any selected item."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 97
|
Single should be One
On page 97, the second sentence of the description of SelectionMode in Table 3-1 is incorrect.
Change:"Can be set to None, Single, MultiSimple, or MultiExtended. MultiSimple allows the selection of multiple objects, and MultiExtend allows the use of the Shift and Ctrl keys when making multiple selections."
To:
"Can be set to None, One, MultiSimple, or MultiExtended. MultiSimple allows the selection of multiple objects, and MultiExtend allows the use of the Shift and Ctrl keys when making multiple selections."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 98
|
Multiple errors in Table 3-2
On page 98, the SelectedIndex, SelectedItem, and ValueMember descriptions are incorrect.
Change:
"SelectedIndex Gets the index of the selected item, or, if the SelectionMode property is set to MultiSimple or MultiSelect, returns any selected index.
SelectedItem Returns the selected item, or, if the SelectionMode property is set to MultiSimple or MultiSelect, returns any selected item.
ValueMember Indicates the data member that will provide the values for the ListBox."
To:
"SelectedIndex Gets the index of the selected item.
SelectedItem Returns the selected item.
ValueMember Indicates the data member that will provide the values for the ComboBox."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 99
|
MultiSelect should be MultiExtended
On page 99, the SelectedIndex and SelectedItem descriptions in Table 3-3 are incorrect.
Change:
"SelectedIndex Gets the index of the selected item, or, if the SelectionMode property is set to MultiSimple or MultiSelect, it can return any selected index.
SelectedItem Returns the selected item, or, if the SelectionMode property is set to MultiSimple or MultiSelect, it can return any selected item."
To:
"SelectedIndex Gets the index of the selected item, or, if the SelectionMode property is set to MultiSimple or MultiExtended, it can return any selected index.
SelectedItem Returns the selected item, or, if the SelectionMode property is set to MultiSimple or MultiExtended, it can return any selected item."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 102
|
ListBox1.IndexOf should be ListBox1.Items.IndexOf
On page 102, the first code sample is incorrect.Change:
"' VBDim anIndex As Integer
anIndex = ListBox1.IndexOf("A String")// C#int anIndex;
anIndex = listBox1.IndexOf("A String");"To:
"' VBDim anIndex As Integer
anIndex = ListBox1.Items.IndexOf("A String")// C#int anIndex;
anIndex = listBox1.Items.IndexOf("A String");"
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 109
|
null should be -1
On page 109, the second sentence of the ImageKey property in Table 3-6 contains an incorrect property.
Change:
"If the ImageKey property is set, the ImageIndex property is set to null."
To:
"If the ImageKey property is set, the ImageIndex property is set to -1."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 111
|
Incorrect description for Parent property in Table 3-7
On page 111, the description for the Parent property in Table 3-7 is incorrect.
Change:
"Returns the parent node of the current node. If the current node is a root node in the TreeView, accessing this property will throw a NullReferenceException."
To:
"Returns the parent node of the current node. If the current node is a root node in the TreeView, accessing this property will return null."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 111
|
Incorrect description for PrevNode property in Table 3-7
On page 111, the description for the PrevNode property in Table 3-7 is incorrect.
Change:
"Returns the previous node."
To:
"Returns the previous sibling tree node."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 129
|
"IndexKey" should be "ImageKey"
On page 129, the third sentence in Quick Check Answer # 2 contains an invalid property.
Change:
"You can set the ImageList property of the controls on a form to an instance of the ImageList and then set either the ImageIndex or the IndexKey property to specify the image."
To:
"You can set the ImageList property of the controls on a form to an instance of the ImageList and then set either the ImageIndex or the ImageKey property to specify the image."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 132
|
"ImageIndex" should be "ImageList"
On page 132, Question 3 Answer D contains an incorrect C# component.
Change:
D. ' VB
Button1.ImageList = ImageList1
Button1.ImageKey = "myImage"
// C#
button1.ImageIndex = imageList1;
button1.ImageKey = "myImage";To:
D. ' VB
Button1.ImageList = ImageList1
Button1.ImageKey = "myImage"
// C#
button1.ImageList = imageList1;
button1.ImageKey = "myImage";
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 138
|
Incorrect character used in Size property
On page 138, Step 2 of Exercise 1 uses an incorrect character for the Size property.
Change:
"2. In the Properties window for Form1, set the Size property to 600,400."
To:
"2. In the Properties window for Form1, set the Size property to 600;400."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 154
|
containers should be panels
On page 154, the last sentence of the second paragraph contains and incorrect Tool Strip type.
Change:
"This results in the ToolStripContainer filling the entire form and having tool strip containers available
on all sides."
To:
"This results in the ToolStripContainer filling the entire form and having tool strip panels available
on all sides."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 156
|
Sample BMP files not located on Companion CD
On page 156, Lab 1, Exercise 1, Step 7 states that the following image files can be found in the code folder on the companion CD: Back.bmp, Forward.bmp, Go.bmp, and Stop.bmp.
The files are not located on the CD. It is available for download from the Microsoft Download Center:
images.exe (http://download.microsoft.com/download/4/e/a/4ea02439-ab9f-40be-a47d-54bf949ea28b/images.exe)
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 162
|
Incorrect capitalization in the word Flow
On page 162, in the description for the property LayoutStyle the F in "HorizontalStackWithOverFlow" and "Vertical-
StackWithOverFlow" should not be capitalized.
Change:
"A value of HorizontalStackWithOverFlow indicates that items are stacked horizontally and overflow as needed. Vertical-
StackWithOverFlow stacks items vertically and overflows as needed."
To:
"A value of HorizontalStackWithOverflow indicates that items are stacked horizontally and overflow as needed. Vertical-
StackWithOverflow stacks items vertically and overflows as needed."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 164
|
"enabled" should be "displayed"
On page 164, the description for the ShowShortcutKeys property is incorrect.
Change:
"Indicates whether shortcut keys are enabled."
To:
"Indicates whether shortcut keys are displayed."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 165
|
"FileToolStripMenuItem" should be "fileToolStripMenuItem"
On page 165, in the second sentence at the top of the page the variable FileToolStripMenuItem has an incorrect capitalization.
Change:
"For example, if you created a File menu item, the default name would be FileToolStripMenuItem."
To:
"For example, if you created a File menu item, the default name would be fileToolStripMenuItem."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 168
|
"UnChecked" should be "Unchecked"
On page 168, the first complete sentence at the top of the page contains an incorrect capitalization in the word UnChecked.
Change:
"The CheckState property on the other hand, indicates the actual state of the menu item and will return either CheckState.Checked,CheckState.UnChecked, or Checkstate.Indeterminate."
To:
"The CheckState property on the other hand, indicates the actual state of the menu item and will return either CheckState.Checked,CheckState.Unchecked, or Checkstate.Indeterminate."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 183
|
"event" should be "method"
On page 183, the second sentence in Step 4 incorrectly uses the word "event".
Change:
"Choose the event you created in the Code Editor."
To:
"Choose the method you created in the Code Editor."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 189
|
Incorrect operator used in C# Step 2
On page 189, Step 2 in the C# section uses an incorrect operator.
Change:
"2. You can remove an event handler at run time by using the =- operator, as shown here:"
To:
"2. You can remove an event handler at run time by using the -= operator, as shown here:"
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 196
|
"MergeItem" should be "MergeAction"
On page 196, the first bullet point under Suggested Practices contains an incorrect property.
Change:
"Create toolbars with similar members and practice merging them together, changing the MergeIndex and MergeItem properties of each tool strip item."
To:
"Create toolbars with similar members and practice merging them together, changing the MergeIndex and MergeAction properties of each tool strip item."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 203
|
"State" property includes incorrect description
On page 203, in Table 5-2 the description of the property "State" is incorrect and needs to be changed.
Change:
"Read only. Gets a string that describes the state of the connection."
To:
"Read only. Gets a combination of System.Data.ConnectionState values that describes the state of the connection."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 206
|
Missing characters in C# code sample
On page 206, the C# code sample near the top of the page is missing closing characters and is incomplete.
Change:
// C#
private OracleConnection ConnectionToOracle = new OracleConnection
("Data Source=Oracle8i;Integrated Security=yes;
To:
// C#
private OracleConnection ConnectionToOracle = new OracleConnection
("Data Source=Oracle8i;Integrated Security=yes");
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 233
|
Invalid character in Button 3 property names
On page 233, the property names in Button 3 contain an incorrect character that needs to be removed.
Change:
Button3:
<Name = ConnectToInvalidDatabaseButton
To:
Button3:
Name = ConnectToInvalidDatabaseButton
Text = Connect to invalid database
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 236, Question 1
|
Answer concerning error range 20-29 is incorrect
On page 236, answers C and D of Question 1 reads:
"C. Errors with a severity level of 20 through 29
D. Errors with a severity level of 30 or greater"
They should read:
"C. Errors with a severity level of 20 through 25
D. Errors with a severity level of 26 or greater"
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 257
|
"DML" used in place of "DDL"
On page 257, the first sentence of the second paragraph reads:
"To execute commands that run DML actions (Data Manipulation Language), create commands that run SQL statements and call the ExecuteNonQuery method of the command."
It should read:
"To execute commands that run DDL actions (Data Definition Language), create commands that run SQL statements and call the ExecuteNonQuery method of the command."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 260
|
"DDL" used in place of "DML"
On page 260, the third paragraph reads:
"Each .NET Framework Data Provider Command object exposes three main execution methods that can be used to return data, update data, call stored procedures and functions, and so on, or perform catalog operations such as executing data definition language (DDL) commands against a data source."
It should read:
"Each .NET Framework Data Provider Command object exposes three main execution methods that can be used to return data, update data, call stored procedures and functions, and so on, or perform catalog operations such as executing data manipulation language (DML) commands against a data source."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 261
|
"Figure 6-2" should be "Table 6-5"
On page 261, the first sentencen in the first paragraph contains an incorrect reference to Figure 6-2.
Change:
"In addition to the execution commands listed in Figure 6-2, an additional set of commands are specifically used for asynchronous calls to a database."
To:
"In addition to the execution commands listed in Table 6-5, an additional set of commands are specifically used for asynchronous calls to a database."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 262
|
Missing restriction in Table 6-6
On page 262, on Table 6-6 the commands BeginExecuteXMLReader and EndExecuteXMLReader are missing the note (SQLCommand only).
Change:
BeginExecuteXmlReader
To:
BeginExecuteXmlReader
(SQLCommand only)
Change:
EndExecuteXMLReader
To:
EndExecuteXMLReader
(SQLCommand only)
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 263
|
Missing quotation in C# code
On page 263, the 6th line down in the C# code is missing a quotation mark in the definition of command1.
Change:
SqlCommand command1 = new SqlCommand("WAITFOR DELAY '00:00:05'; " +
Select * From [Order Details]", NorthWindConnection);To:
SqlCommand command1 = new SqlCommand("WAITFOR DELAY '00:00:05'; " +
"Select * From [Order Details]", NorthWindConnection);
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 263
|
Wrong loop end in C# code
On page 263, the 16th line down in the C# code sample contains an incorrect loop end.
Change:
for (int i = 0; iTo:
for (int i = 0; i
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 275
|
SqlParameter used in place of SqlCommand
On page 275, the first sentence of the paragraph under "Adding Parameters to Command Objects" reads:
"Command objects have a Parameters property that represents a collection of parameters for that command (for example, the SqlParameter.Parameters property)."
It should read:
"Command objects have a Parameters property that represents a collection of parameters for that command (for example, the SqlCommand.Parameters property)."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 285
|
Stored procedures missing in Northwind Database
On page 285, in order to complete Exercise 3 you might have to create stored procedures in the Northwind Database for Get Freight Cost and Get Contact Name.
To create the GetFreightCost stored procedure use the following code:
CREATE PROCEDURE GetFreightCost
@ORDERID INT,
@Freight MONEY OUTPUT
AS
SELECT @Freight = Freight FROM Orders WHERE OrderID = @OrderIDTo create the GetContactName stored procedure use the following code:
CREATE PROCEDURE GetContactName
@Name NVARCHAR(40) OUTPUT
AS
SELECT @Name = ContactName FROM Customers WHERE CompanyName = @Name
Microsoft Press is committed to providing informative and accurate
books. All comments and corrections listed above are ready for
inclusion in future printings of this book. If you have a later printing
of this book, it may already contain most or all of the above corrections.
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 319
|
Definition of "Serializable" is incorrect
On page 319, the definition of Serializable reads:
"Locks are placed on all data that is used in a query, preventing other users from updating the data. Prevents non-repeatable reads but phantom rows are still possible."
It should read:
"A range lock is placed on the DataSet, preventing other users from updating or inserting rows into the dataset until the transaction is complete."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 340
|
Sql1 referenced in place of SqlDataAdapter1
On page 360, the second to last line of the C# code sample reads:
Sql1.UpdateCommand = UpdateCommand;It should read:
SqlDataAdapter1.UpdateCommand = UpdateCommand;
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 352
|
ForeignKey class referenced in place of ForeignKeyConstraint
On page 352, the first sentence of the "How to Create a Foreign Key Constraint" section reads:
"Create foreign key constraints by creating an instance of the ForeignKey class and assigning the desired column or columns from the parent and child tables to the constraint."
It should read:
"Create foreign key constraints by creating an instance of the ForeignKeyConstraint class and assigning the desired column or columns from the parent and child tables to the constraint."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 360
|
Sql1.UpdateCommand should be SqlDataAdapter1.UpdateCommand
On page 360, the 12th line in the C# sample code contains an incorrect DataAdapter
Change:
Sql1.UpdateCommand = UpdateCommand;To:
SqlDataAdapter1.UpdateCommand = UpdateCommand;
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 366
|
Code causes records to not save
On page 366, in Step 23 the last 3 lines of code in the VB and C# code example causes records to not be saved in Step 27.
Remove the following lines from the VB example:
' After the row is updated reset the table to reflect the changes
NorthwindDataSet1.Customers.Clear()
SqlDataAdapter1.Fill(NorthwindDataSet1.Customers)Remove the following lines from the C# example:
// After the row is updated reset the table to reflect the changes
northwindDataSet1.Customers.Clear();
sqlDataAdapter1.Fill(northwindDataSet1.Customers);
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 369
|
SqlDataAdapter should be SqlDataAdapter1
On page 369, the VB and C# code of Step 9 contain an incorrect DataAdapter.
Change:
' VB
Dim commands As New SqlCommandBuilder(SqlDataAdapter)
// C#
SqlCommandBuilder commands = new SqlCommandBuilder(SqlDataAdapter);To:
' VB
Dim commands As New SqlCommandBuilder(SqlDataAdapter1)
// C#
SqlCommandBuilder commands = new SqlCommandBuilder(SqlDataAdapter1);
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 370
|
Additional Provider information needed in VB and C# code
On page 370, a NOTE needs to be added to step 7 that reads:
"NOTE: If you are using SQL Server 7, SQL Server 2000 or SQL Server 2005 (all editions) you must change the Provider in line 5 of the VB and C# code to SQLNCLI instead of SQLOLEDB."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 390
|
C# code contains an error
On page 390, the 6th line in the C# code is missing brackets.
Change:
row = NwDataDocument.GetRowFromElement(Xml.XmlElement)xmlNode;To:
row = NwDataDocument.GetRowFromElement((Xml.XmlElement)xmlNode);
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 418
|
Incorrect capitalization in the code sample
On page 418, the C# code sample reads:
customersBindingSource = New BindingSource(northwindDataSet1, "Customers");It should read:
customersBindingSource = new BindingSource(northwindDataSet1, "Customers");
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 457 & 458
|
"myReader" should be "myWriter"
On pages 457 & 458, the VB and C# code samples that start at the bottom of page 457 and continue on to 458 contain incorrect methods.
Change:
' VB
myReader.WriteStartElement("FirstNames")
myReader.WriteAttributeString("Nicknames", "Ok")
myWriter.WriteElementString("Name", "Libby")
myReader.WriteEndElement()
// C#
myReader.WriteStartElement("FirstNames");
myReader.WriteAttributeString("Nicknames", "Ok");
myWriter.WriteElementString("Name", "Libby");
myReader.WriteEndElement();To:
' VB
myWriter.WriteStartElement("FirstNames")
myWriter.WriteAttributeString("Nicknames", "Ok")
myWriter.WriteElementString("Name", "Libby")
myWriter.WriteEndElement()
// C#
myWriter.WriteStartElement("FirstNames");
myWriter.WriteAttributeString("Nicknames", "Ok");
myWriter.WriteElementString("Name", "Libby");
myWriter.WriteEndElement();
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 463
|
InnerXml should be ReadInnerXml and OuterXml should be ReadOuterXml
On page 463, answers C & D to Question 2 contain incorrect methods.
Change:
C. ' VB
myReader.MoveToAttribute("length")
MsgBox(myReader.InnerXml)
// C#
myReader.MoveToAttribute("length");
MessageBox.Show(myReader.InnerXml);
D. ' VB
myReader.MoveToAttribute("length")
MsgBox(myReader.OuterXml)
// C#
myReader.MoveToAttribute("length");
MessageBox.Show(myReader.OuterXml);
To:
C. ' VB
myReader.MoveToAttribute("length")
MsgBox(myReader.ReadInnerXml)
// C#
myReader.MoveToAttribute("length");
MessageBox.Show(myReader.ReadInnerXml);
D. ' VB
myReader.MoveToAttribute("length")
MsgBox(myReader.ReadOuterXml)
// C#
myReader.MoveToAttribute("length");
MessageBox.Show(myReader.ReadOuterXml);
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 539
|
"Label2" and "Label 4" should be "Label1" and "Label3"
On page 539, Step 6 contains incorrect Label names in the Label column of the table.
Change:
"Label2 Währung-Format
Label4 Aktuelle Uhrzeit
"To:
"Label1 Währung-Format
Label3 Aktuelle Uhrzeit"
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 544
|
Incorrect instruction for setting the MdiParent property
On page 544, step 3 reads:
"In a method in the parent form, such as a menu item Click event handler, create a new instance of the child form and set its MdiParent property to True, as shown in the following example:"
It should read:
"In a method in the parent form, such as a menu item Click event handler, create a new instance of the child form and set its MdiParent property, as shown in the following example:"
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 545
|
Multiple errors in C# code sample
On page 545, the second C# code sample block on the page contains multiple coding errors.
On the 5th line down change:
if (this.ActiveControl.GetType() is TextBox)To:
if (activeForm.ActiveControl is TextBox)On the 7th line down change:TextBox aTextBox = (TextBox)this.ActiveControl;To:TextBox aTextBox = (TextBox)activeForm.ActiveControl;
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 549
|
IsMdiContainer referred to as IsMdiParent
On page 549, answer A to question 1 reads:
"Set the IsMdiParent property of the parent form to True."
It should read:
"Set the IsMdiContainer property of the parent form to True."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 561
|
"TabOrder" referenced in place of "TabIndex"
On page 561, the Property column in the last row of the first table reads:
"TabOrder"
It should read:
"TabIndex"
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 567
|
"Minimum" used in place of "Maximum"
On page 567, the third sentence of the first paragraph reads:
"Likewise, when the Value property is the same value as the Minimum property, the ProgressBar control appears completely filled."
It should read:
"Likewise, when the Value property is the same value as the Maximum property, the ProgressBar control appears completely filled."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 571
|
Incorrect value used in AutoPopDelay property formula
On page 571, the 4th sentence in the second paragraph from the bottom incorrectly states that the AutoPopDelay is set to 5 times the AutomaticDelay property.
Change:
"The AutoPopDelay property is set to 5 * N milliseconds, and the ReshowDelay property is set to N/5 milliseconds."To:
"The AutoPopDelay property is set to 10 * N milliseconds, and the ReshowDelay property is set to N/5 milliseconds."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 581
|
"DefaultSettings" should be "Default"
On page 581, the C# code sample near the top of the page contains an incorrect object.
Change:
// C#
Properties.Settings.DefaultSettings.TitleSetting = "This is the new Title";
Properties.Settings.DefaultSettings.Save();To:
// C#
Properties.Settings.Default.TitleSetting = “This is the new Title”;
Properties.Settings.Default.TitleSetting.Save();
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 597
|
"must" is used in place of "most"
On page 597, the second sentence of the 2nd paragraph reads:
"BackgroundWorker supports the ability to cancel a background process, but you must implement must of the cancellation code yourself."
It should read:
"BackgroundWorker supports the ability to cancel a background process, but you must implement most of the cancellation code yourself."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 631-632
|
ToolBoxBitmap should be ToolboxBitmap
On pages 631 and 632, each of the code samples references ToolBoxBitmap rather than ToolboxBitmap.
Change:
' VB
Class myControlTo:
' VB
Class myControlChange:
// C#
[ToolBoxBitmap(@"C:myToolboxBitmap.bmp")]To:
// C#
[ToolboxBitmap(@"C:myToolboxBitmap.bmp")]
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 653
|
"overrides" should be "override"
On page 653, the first line in the C# code example contains an incorrect keyword.
Change:
protected overrides void OnPaint(System.Windows.Forms.PaintEventArgs pevent)To:
protected override void OnPaint(System.Windows.Forms.PaintEventArgs pevent)
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 655
|
Call to Refresh missing from C# code
On page 655, the C# code at the top of the page is missing a line.
Change:
// C#
protected override void OnClick(EventArgs e)
{
mClicks++;
base.OnClick(e);
}To:
// C#
protected override void OnClick(EventArgs e)
{
mClicks++;
base.OnClick(e);
this.Refresh();
}
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 691
|
"SplitControl" should be "SplitContainer"
On page 691, the second sentence under Case Scenario 1 contains an invalid control.
Change:
"Each SplitterPanel control in the SplitControl can then host additional container controls."
To:
"Each SplitterPanel control in the SplitContainer control can then host additional container controls."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 691
|
"TabContainer" should be "TabControl"
On page 691, the first sentence under Case Scenario 2 contains an invalid control.
Change:
"The TabContainer control can be used to display multiple pages of information and allow the user to switch between pages while keeping the information static."
To:
"The TabControl control can be used to display multiple pages of information and allow the user to switch between pages while keeping the information static."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 707
|
ODBC should be Oracle and vice versa
On page 707, the explanations for answers A and D for question 1 of Lesson 6 are incorrect.Change:"A. Incorrect. Integrated security = yes is used for ODBC connections."To:"A. Incorrect. Integrated security = yes is used for Oracle connections."Change:"D. Incorrect. Trusted_Connection = yes is used for Oracle connections."To:"D. Incorrect. Trusted_Connection = yes is used for ODBC connections."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 723
|
InnerXml should be ReadInnerXml and OuterXml should be ReadOuterXml
Page 723, answers C & D to Question 2 contain incorrect methods.
Change:
"C. Correct. The MoveToAttribute method allows you to specify either an attribute name or index. The attribute value is exposed via the InnerXml property.
D. Incorrect. When positioned on an attribute, the OuterXml property returns the name of the attribute as well as the value."
To:
"C. Correct. The MoveToAttribute method allows you to specify either an attribute name or index. The attribute value is exposed via the ReadInnerXml property.
D. Incorrect. When positioned on an attribute, the ReadOuterXml property returns the name of the attribute as well as the value."
|
Microsoft Press |
May 06, 2010 |
|
| Printed |
Page 729
|
IsMdiContainer referred to as IsMdiParent
On page 729, answer A to question 1 of Lesson 3 reads:
"Correct. You must create a parent form by setting the IsMdiParent property to True."
It should read:
"Correct. You must create a parent form by setting the IsMdiContainer property to True."
|
Microsoft Press |
Jul 13, 2010 |
|
| Printed |
Page 742
|
Definition for "delegate" incorrect
On page 742, the definition for "delegate" reads:
"A type-date function pointer that can be used to call a method synchronously or asynchronously."
It should read:
"A type-safe function pointer that can be used to call a method synchronously or asynchronously."
Microsoft Press is committed to providing informative and accurate
books. All comments and corrections listed above are ready for
inclusion in future printings of this book. If you have a later printing
of this book, it may already contain most or all of the above corrections.
|
Microsoft Press |
May 06, 2010 |
|
|