Article ID: 972392 - Last Review: June 10, 2009 - Revision: 1.5 MCTS Self-Paced Training Kit (Exam 70-561): Microsoft® .NET Framework 3.5—ADO.NET Application Development comments and corrections
On This PageSUMMARY
This article contains comments, corrections, and information about known errors relating to the Microsoft Press book MCTS Self-Paced Training Kit (Exam 70-561): Microsoft .NET Framework 3.5 ADO.NET Application Development, 978-0-7356-2563-1. The following topics are covered:
MORE INFORMATIONCD-ROM: Practice Test question scored incorrectlyIn the practice exam included on the Companion CD, one of the questions is scored incorrectly.The question reads: "You use two DataContext instances to retrieve objects from two database tables. After modifying the returned objects, you call the SubmitChanges method on each instance of DataContext. You want changes to both databases to occur in the context of a single distributed transaction." The answer that should be marked correct reads: "Embed calls to the SubmitChanges method within a TransactionScope with TransactionScopeOption set to RequiredNew. Call Complete after the update." CD-ROM: Practice Test question scored incorrectlyIn the practice exam included on the Companion CD, one of the questions is scored incorrectly.The question reads: "You create a DbCommand to execute a query. You must retrieve a DBDataReader that you can use to access the result set. What should you do?" The answer that should be marked correct reads: "Use the DbCommand.ExecuteDbDataReader method to execute the command text against the connection and return a DbDataReader." CD-ROM: Unable to answer practice test questionIn the practice exam, one of the questions includes instructions to select options from a list, but the list does not exist.The question begins: "You are designing an occasionally connected smart client." This question cannot be answered or scored as it is. Page xix: "Next, Previous, and Go To" should be "Next and Previous"On page xix, the last sentence is incorrect.Change: "To take the test, answer the questions and use the Next, Previous, and Go To buttons to move from question to question." To: "To take the test, answer the questions and use the Next and Previous buttons to move from question to question." Page 17: "File, New, New File" should be "Project, Add New Item"On page 17, the last sentence is incorrect.Change: "You can also select File, New, New File from the menu bar, and choose the confi g fi le type from the window shown in Figure 1-3." To: "You can also select Project, Add New Item from the menu bar, and choose the confi g fi le type from the window shown in Figure 1-3." Page 44: SQL queries are incorrectOn page 44, the SQL queries used in the code sample are incorrect.Change: To: Page 51: "Initial Catalog" should be "InitialCatalog"On page 51, the connection strings used in answer B are incorrect.Change: To: Page 54: Server should be SystemOn page 54, the second sentence of the first paragraph is incorrect.Change: "This is a smart move—Microsoft supplies a number of different data providers, including the native provider for SQL Server, but third parties can supply their own (for example, when using the Oracle Relational Database Management Server (RDBMS)) or a custom data provider can be written by any competent developer." To: "This is a smart move—Microsoft supplies a number of different data providers, including the native provider for SQL Server, but third parties can supply their own (for example, when using the Oracle Relational Database Management System (RDBMS)) or a custom data provider can be written by any competent developer." Page 96: SqlCommand should be SqlParameterCollectionOn Page 96, the sentence before the bulleted list is incorrect.Change: "In addition, the SqlCommand object has an overloaded Add method, which can be used to add parameters with and without a direct reference to a SqlParameter, as shown in the following list:" To: "In addition, the SqlParameterCollection object has an overloaded Add method, which can be used to add parameters with and without a direct reference to a SqlParameter, as shown in the following list:" Page 103: "LEFT INNER JOIN" should be "INNER JOIN"On page 103, the second line of answer A to question 2 is incorrect.Change: To: Page 113: "Asynchronous Prossessing=true" missing from code sampleOn page 113, the 5th line of the C# code sample is missing a parameter.Change: To: Page 138: PROPERTY should be METHODOn page 138, the title of the first column in Table 3-2 is incorrect.Change: "PROPERTY" To: "METHOD" Page 143: PROPERTY should be METHODOn page 143, the title of the first column in Table 3-4 is incorrect.Change: "PROPERTY" To: "METHOD" Page 143: DataSet should be DataTableOn page 143, the Description of RejectChanges in Table 3-4 is incorrect.Change: "Rolls back all the changes to the data in the DataSet, similar to a rollback at database level except this is done to the in-memory data." To: "Rolls back all the changes to the data in the DataTable, similar to a rollback at database level except this is done to the in-memory data." Page 146: GetProducts should be GetProductRowsOn page 146, the last sentence of the second paragraph is incorrect.Change: "The SupplierRow offers a method named GetProducts, which returns an array of ProductRow objects." To: "The SupplierRow offers a method named GetProductRows, which returns an array of ProductRow objects." Page 147: Incorrect description of sample codeOn page 147, the paragraph after the code sample is incorrect.Change: "In the previous code, the BuildDataSetWithRelation method creates two tables, adds them to the DataSet, and then proceeds to build a DataRelation between the two tables, from the ContactType fi eld in Contact to the primary key in the ContactTypes table. By enabling constraints when creating the relationship, the foreign key constraint is automatically implemented. Adding data that holds a reference to a non-existing entry in the ContactTypes table will cause an exception to be thrown. Adding the ContactTypes entry before adding the Contact works fine." To: "In the previous code, the BuildDataSetWithRelation method creates two tables, adds them to the DataSet, and then proceeds to build a DataRelation between the two tables, from the SupplierID field in Product to the primary key in the Supplier table. By enabling constraints when creating the relationship, the foreign key constraint is automatically implemented. Adding data that holds a reference to a non-existing entry in the Supplier table will cause an exception to be thrown. Adding the Supplier entry before adding the Product works fine." Page 148: Incorrect tables and columns referenced in code sample explanationOn page 148, the first paragraph and following code sample are incorrect.Change: For example, the following code sets the expression for the OrderLinesCount column of the Orders table: To: For example, the following code sets the expression for the ProductCount column of the Suppliers table: Page 175: SupplierLocation should be SupplierAddressOn page 175, step 6 refers to an incorrect field.Change: "6. In the wizard, when entering the SQL statement, select all fi elds except the SupplierLocation field." To: "6. In the wizard, when entering the SQL statement, select all fi elds except the SupplierAddress field." Page 206: BatchUpdateSize should be UpdateBatchSizeOn page 206, the first sentence of step 2 is incorrect.Change: "CustomerTableAdapter does not expose the BatchUpdateSize property because this is a SqlDataAdapter-specifi c property." To: "CustomerTableAdapter does not expose the UpdateBatchSize property because this is a SqlDataAdapter-specifi c property." Page 214: Incorrect column names usedOn page 214, the third paragraph is incorrect.Change: "The code shown in Listing 4-2 shows how to create a relationship between two tables. The foreign key constraint is enabled, so only existing values for the ContactType fi eld are allowed. It shows that the BuildDataSetWithRelation method creates two tables, adds them to the DataSet and then proceeds to build a DataRelation between the two tables. The relationship connects the ContactType fi eld in Contact to the primary key in the ContactTypes table. By enabling constraints when creating the relationship, the foreign key constraint is automatically implemented, and adding data that holds a reference to a nonexisting ContactTypes entry causes an exception to be thrown. The correct implementation would be to add the ContactTypes entry before adding the Contact entry." To: "The code shown in Listing 4-2 shows how to create a relationship between two tables. The foreign key constraint is enabled, so only existing values for the SupplierID field are allowed. It shows that the BuildDataSetWithRelation method creates two tables, adds them to the DataSet and then proceeds to build a DataRelation between the two tables. The relationship connects the SupplierID field in Product to the primary key in the Supplier table. By enabling constraints when creating the relationship, the foreign key constraint is automatically implemented, and adding data that holds a reference to a nonexisting Supplier entry causes an exception to be thrown. The correct implementation would be to add the Supplier entry before adding the Product entry." Page 219: 4-3 should be 4-4On page 219, the last sentence before Table 4-4 is incorrect.Change: "See Table 4-3 for a list of transaction scope options." To: "See Table 4-4 for a list of transaction scope options." Page 223: Products should be ProductOn page 223, step 4 is incorrect.Change: "Drag the Products table onto the design surface." To: "Drag the Product table onto the design surface." Page 224: Incorrect instruction in step 5On page 224, the second sentence of step 5 is incorrect.Change: "In the wizard, when entering the SQL statement, select all fields except the SupplierLocation field." To: "In the wizard, when entering the SQL statement, select all fields." Page 224: “FillBySupplierID and GetDataBySupplierID.” should be “FillBySupplierID.”On page 224, steps 8.b. and 9.b. are incorrect.Change: "Name the query "FillBySupplierID and GetDataBySupplierID."" To: "Name the query "FillBySupplierID."" Page 230: scope.Commit() missing from code sampleOn page 230, an additional line is needed in the code sample.Change: To: Pages 292-294: Multiple entries should be removed from Table 6-1On pages 292-294, the following rows should be removed from Table 6-1:Join SelectMany ThenBy ThenByDescending ToDictionary ToLookup Page 299: Incorrect description of step 3On page 299, the descript ion of step 3 is incorrect.Change: "Inside the Main method, create an instance of the GameList class called games. Also, add a reference to the GameList namespace to the top of the file, as shown here:" To: "Create a query to retrieve the games:" Page 321: Systen.Environment should be System.DiagnosticsOn page 321, the second sentence of Practice 1 is incorrect.Change: "Use LINQ to query the process list that is returned by System.Environment’s Process class." To: "Use LINQ to query the process list that is returned by System.Diagnostics’s Process class." Page 330: "XmlReadMode.Ignore schema" should be "XmlReadMode.ReadSchema"On page 330, the last sentence is incorrect.Change: "Alternatively, you can use XML schema to define the layout and only use XmlReadMode.Ignore schema as you’ll see in the next section." To: "Alternatively, you can use XML schema to define the layout and only use XmlReadMode.ReadSchema as you’ll see in the next section." Page 364: VideoGameStoreDB should be VideoGameStoreDBContextOn page 364, the second sentence of the "DataContext" section is incorrect.Change: "VideoGameStoreDB is a class that inherits from System.Data.Linq.DataContext." To: "VideoGameStoreDBContext is a class that inherits from System.Data.Linq.DataContext." Page 375: Line missing from code sampleOn page 375, the VB code is missing a line.Change: To: Page 380: SELECT statement duplicatedOn page 380, the code sample in the UPDATE STATEMENT section is incorrect.Change: To: Page 386: Step 7 should be removedOn page 386, step 7 is incorrect and should be disregarded.Page 409: OfProduct should be Of ProductOn page 409, the 14th line of the code sample is incorrect.Change: To: Page 410: Error in code sampleOn page 410, the 10th line of the code sample is incorrect.Change: To: Page 437: OPERATOR should be FUNCTIONOn page 437, the title of the left column in Table 10-7 is incorrect.Change: "OPERATOR" To: "FUNCTION" Page 455: Code should be Practice FilesOn page 455, the second sentence of the Lab section is incorrect.Change: "All the lab files can be installed from the Code folder on the companion CD." To: "All the lab files can be installed from the Practice Files folder on the companion CD." Page 459: 1943 should be 1942On page 459, there are three references to “1943: Joint Strike” that should read "1942:Joint Strike."In step 6, change: "In the else part of the if statement, change the game’s ProductName to “1943: Joint Strike” (note that the year is changing)." To: "In the else part of the if statement, change the game’s ProductName to “1942: Joint Strike” (note that the year is changing)." On the 6th line of the VB code sample, change: To: On the 9th line of the C# code sample, change: To: Page 466: Visual Studio 7 should be Visual Studio 97On page 466, the explanation for answer D of Question 1 of Lesson 2 is inaccurate.Change: "Correct: Typed DataSets were introduced in Visual Studio 7." To: "Correct: Typed DataSets were introduced in Visual Studio 97." Page 476: EntityClass Model should be Entity Data ModelOn page 476, the explanation of answer D to question 2 is incorrect.Change: "Incorrect: This answer refers to the EntityClass Model source code file." To: "Incorrect: This answer refers to the Entity Data Model source code file." Page 479: DataAdapter definition is incorrectOn page 479, the definition for DataAdapter is incorrect.Change: "DataReader is used to consume data in a read-only, forward-only, sequential and unbuffered fashion." To: "Represents a set of SQL commands and a database connection that are used to fill the DataSet." 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. | Other Resources Other Support Sites
CommunityArticle Translations |





















Back to the top