文章編號: 972392 - 上次校閱: 2009年6月10日 - 版次: 1.5

MCTS Self-Paced 訓練套件 (測驗 70 561): Microsoft ?.NET Framework 3.5 — ADO.NET 應用程式開發註解和更正

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

結論

這份文件包含註解、 更正,與 Microsoft 按活頁簿的相關的已知錯誤的相關資訊 MCTS Self-Paced 訓練套件 (測驗 70 561): Microsoft.NET Framework 3.5 ADO.NET 應用程式開發,978-0-7356-2563年-1。

將會涵蓋下列主題:

  • 光碟片: 練習測試問題計分方式不正確
  • 光碟片: 練習測試問題計分方式不正確
  • 光碟片: 無法回答練習測試問題
  • 頁面 xix: 「 下一步]、 [上一個,] 和 [移至 」 應該是"前下一步和動畫"
  • 頁面 17:"檔案、 新增、 開新檔案 」 應該是 「 Project,加入新項目"
  • 頁面 44: SQL 查詢是不正確
  • Page 51: 初始的目錄 」 應該是 InitialCatalog"
  • 頁面 54: 伺服器應該是系統
  • 頁面 96: SqlCommand 應該是 SqlParameterCollection
  • 頁面 103: 」 向 INNER JOIN 」 應該是"INNER JOIN"
  • 頁面 113: 「 非同步 Prossessing = true"遺漏從程式碼範例
  • 頁面 138: 屬性應該是方法
  • 頁面 143: 屬性應該是方法
  • 頁面 143: 資料集應該是 DataTable
  • 頁面 146: GetProducts 應該是 GetProductRows
  • 範例程式碼的頁面 147: 不正確描述
  • 頁面 148: 不正確的資料表和資料行所參考的程式碼範例說明
  • 頁面 175: SupplierLocation 應該是 SupplierAddress
  • 頁面 206: BatchUpdateSize 應該是 UpdateBatchSize
  • 使用頁面 214: 不正確的資料行名稱
  • 頁面 219: 4 3 應該是 4 4
  • 頁面 223: 產品應該是產品
  • 在步驟 5 中的頁面 224: 不正確指令
  • 頁面 224: 「 FillBySupplierID 和 GetDataBySupplierID 」 應該是 「 FillBySupplierID 」。
  • 從程式碼範例中遺失的頁面 230: scope.Commit()
  • 頁面 292-294: 多重項目應該移除從表格 6-1
  • 頁面 299: 不正確的步驟 3 的描述
  • 頁面 321: Systen.Environment 應該是命名
  • 頁面 330:"XmlReadMode.Ignore 結構描述 」 應該是 XmlReadMode.ReadSchema"
  • 頁面 364: VideoGameStoreDB 應該是 VideoGameStoreDBContext
  • 頁面 375: 第行遺漏從程式碼範例
  • 重複頁面 380: SELECT 陳述式
  • 頁面 386: 應該移除步驟 7
  • 頁面 409: OfProduct 應該是屬於產品
  • 在程式碼範例中的頁面 410: 錯誤
  • 頁 437: 運算子應該是 FUNCTION
  • 頁面 455: 程式碼應該是練習檔案
  • 頁面 459: 1943年應該 1942
  • 頁面 466: Visual Studio 7 應該是 Visual Studio 97
  • 頁面 476: EntityClass 模型應該是實體資料模型
  • 頁面 479: 資料配接器定義不正確

其他相關資訊

光碟片: 練習測試問題計分方式不正確

練習測驗,包含在小幫手 CD 上,在其中一個問題被計分方式不正確。

這個問題會讀取:
」 您使用兩個 DataContext 執行個體擷取物件從兩個資料庫資料表。 修改傳回的物件後,請在 DataContext 的每個執行個體上呼叫 SubmitChanges 方法。 您要在單一的分散式交易的內容中發生這兩個資料庫的變更 」。

應標記為正確的答案會讀取:
"嵌入 SubmitChanges 方法內與設定為 [RequiredNew TransactionScopeOption TransactionScope 的呼叫。 呼叫完成更新後"。

光碟片: 練習測試問題計分方式不正確

練習測驗,包含在小幫手 CD 上,在其中一個問題被計分方式不正確。

這個問題會讀取:
「 您建立要執行的查詢 DbCommand。 您必須擷取 DBDataReader 可讓您存取該結果集。 您該怎麼做? 」

應標記為正確的答案會讀取:
"來執行命令文字對連線,並傳回一個 DbDataReader 使用 DbCommand.ExecuteDbDataReader 方法 」。

光碟片: 無法回答練習測試問題

在練習測驗,其中一個問題包含了說明指示,可以從一個清單中選取選項,但該清單不存在。

問題開始:
」 您正在設計偶爾連線的智慧型用戶端 」。

無法回答這個問題,或奪得原狀。

頁面 xix: 「 下一步]、 [上一個,] 和 [移至 」 應該是"前下一步和動畫"

在頁面 xix 上最後一句是不正確的。

變更:
若要測試回答的問題和使用 [下一步]、 [上一步,和 [移至] 按鈕來移動問題從問題 >。

至:
若要測試回答的問題和使用下一步] 和 [上一頁] 按鈕來移動問題從問題 >。

頁面 17:"檔案、 新增、 開新檔案 」 應該是 「 Project,加入新項目"

在頁面 17,最後一句是不正確的。

變更:
您可以也從功能表] 列中選取 [檔案]、 [新增]、 [開新檔案和從視窗顯示在 [圖 1-3 中選擇 confi g fi (型別 >。

至:
您可以也選取 [專案加入新項目],從 [功能表] 列和從視窗顯示在 [圖 1-3 中選擇 confi g fi (型別 >。

頁面 44: SQL 查詢是不正確

在頁面 44,程式碼範例中使用的 SQL 查詢不正確。

變更:
theTransaction = theConnection.BeginTransaction("myFirstTransaction")

Dim theCommand As SqlCommand = New SqlCommand()
theCommand.CommandText = "SELECT top 10 * FROM game"
theCommand.CommandType = CommandType.Text
theCommand.Transaction = theTransaction
theCommand.Connection = theConnection
theCommand.ExecuteNonQuery()

Console.WriteLine("First command executed successfully.")

Dim theSecondCommand As SqlCommand = New SqlCommand()
theSecondCommand.CommandText = "SELECT top 10 * FROM accessory"

若要:
theTransaction = theConnection.BeginTransaction("myFirstTransaction")

Dim theCommand As SqlCommand = New SqlCommand()
theCommand.CommandText = "UPDATE product SET listprice = 59.99
	WHERE productid = 2020"
theCommand.CommandType = CommandType.Text
theCommand.Transaction = theTransaction
theCommand.Connection = theConnection
theCommand.ExecuteNonQuery()

Console.WriteLine("First command executed successfully.")

Dim theSecondCommand As SqlCommand = New SqlCommand()
theSecondCommand.CommandText = 
	"INSERT INTO product (ProductName, ProductDescription, ListPrice,
		ProductTypeID, ReleaseDate, ListPriceCurrency) " +
	"VALUES ('Super Fight 2', 'The sequel to the #1 XBox 360 game
		that never was', 59.99, 1, '2008-11-01', 'USD')"

Page 51: 初始的目錄 」 應該是 InitialCatalog"

在頁面 51,答案 B 中所使用的連接字串不正確。

變更:
Dim theConnectionString As String = "Data Source=jim-pc;Initial Catalog=VideoGameStoreDB;Integrated Security=SSPI;"

到:
Dim theConnectionString As String = "Data Source=jim-pc;InitialCatalog=VideoGameStoreDB;Integrated Security=SSPI;""

Change:
"string theConnectionString = "Data Source=jim-pc;Initial
	Catalog=VideoGameStoreDB;Integrated Security=SSPI;";

To:
"string theConnectionString = "Data Source=jim-pc;InitialCatalog=VideoGameStoreDB;Integrated Security=SSPI;";


頁面 54: 伺服器應該是系統

在頁面 54 上, 第一個段落的第二個句子是不正確的。

變更:
「 這是智慧移動 — Microsoft 提供許多不同的資料提供者包括原生的提供者為 SQL Server,但協力廠商可以提供它們自己 (比方說當使用 Oracle 關聯式資料庫管理伺服器 (RDBMS)) 或任何厲害的開發人員撰寫自訂的資料提供者"

至:
「 這是智慧移動 — Microsoft 提供許多不同的資料提供者包括原生的提供者為 SQL Server,但協力廠商可以提供它們自己 (比方說當使用 Oracle 關聯式資料庫管理系統 (RDBMS)) 或任何厲害的開發人員撰寫自訂的資料提供者"

頁面 96: SqlCommand 應該是 SqlParameterCollection

頁面 96年上項目符號清單之前句子是不正確。

變更:
"在另外 SqlCommand 物件有一個多載的 Add 方法,可以用來新增參數使用和不使用一個 SqlParameter 的直接參考下列清單所示:"

至:
"在另外 SqlParameterCollection 物件有一個多載的 Add 方法,可以用來新增參數使用和不使用一個 SqlParameter 的直接參考下列清單所示:"

頁面 103: 」 向 INNER JOIN 」 應該是"INNER JOIN"

在頁面 103,第二行的問題 2 A 答案不正確。

變更:
FROM product p LEFT INNER JOIN productType pt on pt.ProductTypeID =

若要:
FROM product p INNER JOIN productType pt on pt.ProductTypeID =

頁面 113: 「 非同步 Prossessing = true"遺漏從程式碼範例

在頁面 113,C# 程式碼範例的第五個行遺漏參數。

變更:
Security=SSPI;";

若要:
Security=SSPI;Asynchronous Prossessing=true;";

頁面 138: 屬性應該是方法

在頁 138,標題的第一欄表格 3-2 是不正確。

變更:
屬性"

至: 「 方法 」

頁面 143: 屬性應該是方法

在頁面 143,第一欄表 3-4 的標題不正確。

變更:
屬性"

至:
「 方法 」

頁面 143: 資料集應該是 DataTable

在頁面 143,「 描述 」 的表格 3-4 RejectChanges 不正確。

變更:
"復原所有變更至資料中 [DataSet 類似於在資料庫層級除了這麼做是為了在記憶體中資料復原"。

至:
"復原所有變更至資料中 [DataTable 類似於在資料庫層級除了這麼做是為了在記憶體中資料復原"。

頁面 146: GetProducts 應該是 GetProductRows

在頁面 146,第二個段落的最後一句是不正確的。

變更:
[SupplierRow 提供方法,稱為 GetProducts 它會傳回 ProductRow 物件的陣列。

至:
[SupplierRow 提供方法,稱為 GetProductRows 它會傳回 ProductRow 物件的陣列。

範例程式碼的頁面 147: 不正確描述

在頁面 147,在程式碼範例之後段落不正確。

變更:
在先前的程式碼中 BuildDataSetWithRelation 方法會建立兩個資料表、 將它們新增到資料集和再進行到建置兩個資料表的從連絡人中 ContactTypes 資料表中主索引鍵 [ContactType fi eld 之間 DataRelation。藉由建立關聯性時,請啟用條件約束,外部索引鍵條件約束將自動實作。新增保留參考到不存在的項目 ContactTypes 資料表中的資料會導致擲回例外狀況。新增聯絡人前正在新增 ContactTypes 項目運作正常"。

至:
在先前的程式碼中 BuildDataSetWithRelation 方法會建立兩個資料表、 將它們新增到資料集和再進行到建置兩個資料表中產品供應商編號欄位供應商] 資料表中主索引鍵之間 DataRelation。藉由建立關聯性時,請啟用條件約束,外部索引鍵條件約束將自動實作。新增供應商] 資料表中保留到不存在的項目參考的資料會導致擲回例外狀況。新增 「 產品之前加入 [供應商] 項目運作正常"。

頁面 148: 不正確的資料表和資料行所參考的程式碼範例說明

在頁面 148,第一段與下列程式碼範例不正確。

變更:
下列程式碼,例如設定 OrderLinesCount 資料行,[訂貨主檔] 資料表的運算式:
' VB
Tables("Suppliers").Columns("ProductCount").Expression = "Count(Child(Product))"

// C#
Tables["Suppliers "].Columns["Product Count"].Expression = "Count(Child(Product))";

至:,例如下列程式碼會設定為 「 供應商 」 資料表的 ProductCount 資料行運算式:
' VB
Tables("Suppliers").Columns("ProductCount").Expression = "Count(Child(Product))"

// C#
Tables["Suppliers"].Columns["ProductCount"].Expression = "Count(Child(Product))";

頁面 175: SupplierLocation 應該是 SupplierAddress

在頁面 175,步驟 6 參照不正確的欄位。

變更:
6.在中精靈,輸入 SQL 陳述式時,選取所有 fi elds SupplierLocation 欄位除外。

至:
6.在中精靈,輸入 SQL 陳述式時,選取所有 fi elds SupplierAddress 欄位除外。

頁面 206: BatchUpdateSize 應該是 UpdateBatchSize

在頁面 206,步驟 2 的第一個句子是不正確的。

變更:
"CustomerTableAdapter 不會公開 BatchUpdateSize 屬性因為這是 SqlDataAdapter specifi c 屬性"。

至:
"CustomerTableAdapter 不會公開 UpdateBatchSize 屬性因為這是 SqlDataAdapter specifi c 屬性"。

使用頁面 214: 不正確的資料行名稱

在頁面 214,第三個段落不正確。

變更:
"4-2 程式碼範例所示的程式碼會示範如何建立兩個資料表間的關聯性。啟用外部索引鍵條件約束,所以允許 ContactType fi eld 的唯一現有值。它顯示 BuildDataSetWithRelation 方法會建立兩個資料表、 將它們加入至資料集,以及接著會繼續建置兩個資料表之間 DataRelation。關聯性將 ContactType fi eld 在連絡人中的連接到 ContactTypes 資料表中主索引鍵。藉由建立關聯性時,請啟用條件約束,自動實作外部索引鍵條件約束時,並加入儲存 nonexisting ContactTypes 參考的資料項目造成擲回例外狀況。正確實作就是新增 ContactTypes 項目加入 [連絡人項目之前"。

至:
"4-2 程式碼範例所示的程式碼會示範如何建立兩個資料表間的關聯性。啟用外部索引鍵條件約束,所以允許 [供應商編號] 欄位的唯一現有值。它顯示 BuildDataSetWithRelation 方法會建立兩個資料表、 將它們加入至資料集,以及接著會繼續建置兩個資料表之間 DataRelation。關聯性將在產品中的 [供應商編號] 欄位連接到供應商資料表中主索引鍵。藉由建立關聯性時,請啟用條件約束,自動實作外部索引鍵條件約束時,並加入儲存到 nonexisting 的供應商項目參考的資料造成擲回例外狀況]。正確實作就是前新增產品項目會加入 [供應商] 項目"。

頁面 219: 4 3 應該是 4 4

在頁面 219,最後一句表 4-4 之前不正確。

變更:
「 請參閱表格 4-3 的交易範圍選項清單 」。

至:
「 請參閱表 4-4 的交易範圍選項清單 」。

頁面 223: 產品應該是產品

在頁面 223,步驟 4 不正確。

變更:
"將 [產品] 資料表拖曳至 [設計] 介面上"。

至:
"拖曳至設計介面上將產品資料表 」。

在步驟 5 中的頁面 224: 不正確指令

在頁面 224,步驟 5 的第二個句子是不正確的。

變更:
在精靈,輸入 SQL 陳述式時中, 選取 [SupplierLocation 欄位除外的所有欄位。

至:
在精靈中,輸入 SQL 陳述式時,選取所有的欄位。

頁面 224: 「 FillBySupplierID 和 GetDataBySupplierID 」 應該是 「 FillBySupplierID 」。

在頁面 224,步驟 8.b 及 9.b [不正確。

變更:
"name 查詢 FillBySupplierID 和 GetDataBySupplierID >"。

至:
"name 查詢"FillBySupplierID]"。

從程式碼範例中遺失的頁面 230: scope.Commit()

在頁面 230 中程式碼範例, 需要額外的一行。

變更:
Using scope As New TransactionScope()
	SaveCustomer(ds)
	SavePurchase(ds)
End Using

若要:
Using scope As New TransactionScope()
	SaveCustomer(ds)
	SavePurchase(ds)
	scope.Commit()
End Using

頁面 292-294: 多重項目應該移除從表格 6-1

頁面 292-294 上下列的資料列應該移除從表格 6-1:
聯結
SelectMany
ThenBy
ThenByDescending
ToDictionary
ToLookup

頁面 299: 不正確的步驟 3 的描述

在頁面 299,descript 鋰步驟 3 的不正確。

變更:
"在主要] 方法內的建立稱為遊戲 GameList 類別的執行個體]。而且,加入到該檔案的頂端 GameList 命名空間的參考,如下所示:"

至:
"建立查詢來擷取遊戲:"

頁面 321: Systen.Environment 應該是命名

在頁面 321,練習 1 」 的第二個句子是不正確的。

變更:
"查詢會傳回由 System.Environment ’s 處理序類別的處理序清單使用 LINQ"。

至:
"查詢會傳回由命名 ’s 處理序類別的處理序清單使用 LINQ"。

頁面 330:"XmlReadMode.Ignore 結構描述 」 應該是 XmlReadMode.ReadSchema"

在頁面 330,最後一句是不正確的。

變更:
"或者,您可以使用 XML 結構描述定義版面配置和您在下一節中看到,只使用 XmlReadMode.Ignore 結構描述"。

至:
"或者,您可以使用 XML 結構描述定義版面配置和您在下一節中看到,只使用 XmlReadMode.ReadSchema"。

頁面 364: VideoGameStoreDB 應該是 VideoGameStoreDBContext

在頁面 364,DataContext > 一節的第二個句子是不正確的。

變更:
「 VideoGameStoreDB 是繼承自 System.Data.Linq.DataContext 的類別 」。

至:
「 VideoGameStoreDBContext 是繼承自 System.Data.Linq.DataContext 的類別 」。

頁面 375: 第行遺漏從程式碼範例

在頁面 375,VB 程式碼遺失一條線。

變更:
		Select c
	Return query.ToList()
End Function

至:
		Select c
	Trace.WriteLine(query.ToString())
	Return query.ToList()
End Function

重複頁面 380: SELECT 陳述式

在頁面 380,程式碼範例中更新陳述式區段不正確。

變更:
exec sp_executesql N'UPDATE [dbo].[Product]
SET [ListPrice] = @p2
WHERE ([ProductID] = @p0) AND ([ProductVersion] = @p1)

SELECT [t1].[ProductVersion]
FROM [dbo].[Product] AS [t1]
WHERE ((@@ROWCOUNT) > 0) AND ([t1].[ProductID] = @p3)',
N'@p0 int,@p1 timestamp,@p2 float,
@p3 int',@p0=4,@p1=0x0000000000001696,@p2=39.930000000000007,@p3=4

SELECT [t1].[ProductVersion]'
FROM [dbo].[Product] AS [t1]
WHERE ((@@ROWCOUNT) > 0) AND ([t1].[ProductID] = @p3)',
N'@p0 int,@p1 timestamp,@p2 float,
@p3 int',@p0=4,@p1=0x0000000000001696,@p2=39.930000000000007,@p3=4

若要:
exec sp_executesql N'UPDATE [dbo].[Product]
SET [ListPrice] = @p2
WHERE ([ProductID] = @p0) AND ([ProductVersion] = @p1)

SELECT [t1].[ProductVersion]'
FROM [dbo].[Product] AS [t1]
WHERE ((@@ROWCOUNT) > 0) AND ([t1].[ProductID] = @p3)',
N'@p0 int,@p1 timestamp,@p2 float,
@p3 int',@p0=4,@p1=0x0000000000001696,@p2=39.930000000000007,@p3=4

頁面 386: 應該移除步驟 7

在頁面 386,步驟 7 是不正確,而且應該略過。

頁面 409: OfProduct 應該是屬於產品

在頁面 409,14 行的程式碼範例不正確。

變更:
ObjectQuery(OfProduct) = theContext.Product

若要:
ObjectQuery(Of Product) = theContext.Product


在程式碼範例中的頁面 410: 錯誤

在頁面 410,十行的程式碼範例不正確。

變更:
ObjectQuery productQueryUsingNavigationProperty<Product> =

若要:
ObjectQuery<Product> productQueryUsingNavigationProperty =


頁 437: 運算子應該是 FUNCTION

在頁 437,左邊的資料行表格 10-7 的標題不正確。

變更:
運算子"

至:
函數 」

頁面 455: 程式碼應該是練習檔案

在頁面 455,實驗室區段的第二個句子是不正確的。

變更:
「 實驗室的所有檔案可以都安裝從同一系列文件 CD 上的程式碼資料夾"。

至:
「 實驗室的所有檔案可以都安裝從同一系列文件 CD 上的 [練習檔案] 資料夾 」。

頁面 459: 1943年應該 1942

在頁面 459 上, 有三個參考 「 1943年: 接合攻擊 」,應該閱讀 「 1942:Joint 攻擊 」。

在第 6 步驟變更:
"if 其他部分中陳述式、 遊戲 ’s 產品名稱若要變更 「 1943年: 接合攻擊 」 (請注意,變更年)"

至:
"if 其他部分中陳述式、 遊戲 ’s 產品名稱若要變更 「 1942年: 接合攻擊 」 (請注意,變更年)"

在 VB 程式碼範例的第六個行,變更:
game.ProductName = "1943: Joint Strike"

若要:
game.ProductName = "1942: Joint Strike"

在 C# 程式碼範例的第九行,變更:
game.ProductName = "1943: Joint Strike";

至:
game.ProductName = "1942: Joint Strike";

頁面 466: Visual Studio 7 應該是 Visual Studio 97

在頁 466,答案 D 的問題 1 的第 2 課的說明是不正確。

變更:
"正確: 輸入的資料集已在 Visual Studio 7 引入"

至:
"正確: 輸入的資料集被引入在 Visual Studio 97."

頁面 476: EntityClass 模型應該是實體資料模型

在頁面 476,問題 2 D 答案說明是不正確的。

變更:"不正確的: 這個答案是指 EntityClass 模型原始程式檔"

至:
"不正確: 這個答案是指實體資料模型的原始程式檔"

頁面 479: 資料配接器定義不正確

在頁面 479,資料配接器的定義不正確。

變更:
"DataReader 用來使用唯讀、 順向類型、 連續且 unbuffered 的方式來進行資料 」。

至:
"表示一組的 SQL 命令和用來填滿資料集的資料庫連接]。

Microsoft 按將致力於提供有用的資訊和精確的書籍。所有註解和更正上列準備就緒可納入本書的未來 printings。如果您本書的再版它可能已經包含大部分或所有上述的更正。

這篇文章中的資訊適用於:
  • MCTS Self-Paced Training Kit (Exam 70-561): Microsoft .NET Framework 3.5—ADO.NET Application Development, ISBN 978-0-7356-2563-1
關鍵字:?
kbmt KB972392 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:972392? (http://support.microsoft.com/kb/972392/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。