新聞中心
學(xué)習(xí)ADO.NET時(shí),你可能會(huì)遇到ADO.NET數(shù)據(jù)集約束問(wèn)題,這里將介紹ADO.NET數(shù)據(jù)集約束問(wèn)題的解決方法,在這里拿出來(lái)和大家分享一下。DataAdapter 的 Fill 方法僅使用數(shù)據(jù)源中的表列和表行來(lái)填充 DataSet;雖然約束通常由數(shù)據(jù)源來(lái)設(shè)置,但在默認(rèn)情況下,F(xiàn)ill 方法不會(huì)將此架構(gòu)信息添加到 DataSet 中。 若要使用數(shù)據(jù)源中的現(xiàn)有主鍵約束信息填充 DataSet,則可以調(diào)用 DataAdapter 的 FillSchema 方法,或者在調(diào)用 Fill 之前將 DataAdapter 的 MissingSchemaAction 屬性設(shè)置為 AddWithKey。 這將確保 DataSet 中的主鍵約束反映數(shù)據(jù)源中的主鍵約束。 外鍵約束信息不包含在內(nèi),必須顯式創(chuàng)建,如ADO.NET數(shù)據(jù)集約束 (ADO.NET)中所示。

創(chuàng)新互聯(lián)建站-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比陜西網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式陜西網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋陜西地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
#T#如果在使用數(shù)據(jù)填充 DataSet 之前向其中添加架構(gòu)信息,可以確保將主鍵約束與 DataSet 中的 DataTable 對(duì)象包含在一起。 這樣,當(dāng)再次調(diào)用來(lái)填充 DataSet 時(shí),將使用主鍵列信息將數(shù)據(jù)源中的新行與每個(gè) DataTable 中的當(dāng)前行相匹配,并使用數(shù)據(jù)源中的數(shù)據(jù)改寫(xiě)表中的當(dāng)前數(shù)據(jù)。 如果沒(méi)有架構(gòu)信息,來(lái)自數(shù)據(jù)源的新行將追加到 DataSet 中,從而導(dǎo)致重復(fù)的行。
如果數(shù)據(jù)源中的某列被標(biāo)識(shí)為自動(dòng)遞增列,則 FillSchema 方法或 MissingSchemaAction 為 AddWithKey 的 Fill 方法將創(chuàng)建一個(gè) AutoIncrement 屬性設(shè)置為 true 的 DataColumn。 不過(guò),您將需要手動(dòng)設(shè)置 AutoIncrementStep 和 AutoIncrementSeed 值。 有關(guān)自動(dòng)遞增列的更多信息,請(qǐng)參見(jiàn)創(chuàng)建 AutoIncrement 列 (ADO.NET)。
當(dāng)使用 FillSchema 或?qū)?MissingSchemaAction 設(shè)置為 AddWithKey 時(shí),將需要在數(shù)據(jù)源中進(jìn)行額外的處理來(lái)確定主鍵列信息。 這一額外的處理可能會(huì)降低性能。 如果主鍵信息在設(shè)計(jì)時(shí)已知,為了實(shí)現(xiàn)***性能,建議顯式指定一個(gè)或多個(gè)主鍵列。 有關(guān)顯式設(shè)置表的主鍵信息的詳情,請(qǐng)參見(jiàn)定義主鍵 (ADO.NET)。
以下代碼示例顯示如何使用 FillSchema 向 DataSet 添加架構(gòu)信息。
- Dim custDataSet As DataSet = New DataSet()
- custAdapter.FillSchema(custDataSet, SchemaType.Source, "Customers")
- custAdapter.Fill(custDataSet, "Customers")
以下代碼示例顯示如何使用 Fill 方法的 MissingSchemaAction.AddWithKey 屬性向 DataSet 添加架構(gòu)信息。
- Dim custDataSet As DataSet = New DataSet()
- custAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
- custAdapter.Fill(custDataSet, "Customers")
本文名稱:如何添加ADO.NET數(shù)據(jù)集約束
文章出自:http://m.5511xx.com/article/cdgcgdj.html


咨詢
建站咨詢
