讓我們一起學習ADO.NET XML架構(gòu)
學習ADO.NET時,你可能會遇到XML架構(gòu)問題,這里將介紹解決方法,在這里拿出來和大家分享一下。如果給定符合ADO.NET XML架構(gòu)定義語言 (XSD) 標準的ADO.NET XML架構(gòu),您就可以使用隨 Windows 軟件開發(fā)工具包 (SDK) 提供的 XSD.exe 工具生成強類型 DataSet。以下代碼顯示使用該工具生成 DataSet 的語法。
- xsd.exe /d /l:CS XSDSchemaFileName.xsd /eld /n:XSDSchema.Namespace
#T#
在此語法中,/d 指令指示該工具生成 DataSet,/l: 告訴該工具要使用哪種語言(例如 C# 或 Visual Basic .NET)。 可選 /eld 指令指定您可以使用 LINQ to DataSet 對生成的 DataSet 進行查詢。 當同時指定 /d 選項時可使用此選項。 有關(guān)更多信息,請參見查詢類型化數(shù)據(jù)集。 可選的 /n: 指令指示該工具還要為名為 XSDSchema.Namespace 的 DataSet 生成命名空間。 命令的輸出為 XSDSchemaFileName.cs,該輸出可以在 ADO.NET 應用程序中編譯和使用。 所生成的代碼可以編譯成庫或模塊。
以下代碼顯示訪問向 ADO.NET 應用程序中的 XSD.exe 傳遞的命名空間的語法。
- Imports XSDSchema.Namespace
以下代碼示例使用名為 CustomerDataSet 的類型化 DataSet 來加載 Northwind 數(shù)據(jù)庫中客戶的列表。 當使用 Fill 方法加載數(shù)據(jù)后,該示例會使用類型化 CustomersRow (DataRow) 對象循環(huán)通過 Customers 表中的每個客戶。 它提供了對 CustomerID 列的直接訪問,而不是通過 DataColumnCollection 來訪問。
- Dim customers As CustomerDataSet= New CustomerDataSet()
- Dim adapter As SqlDataAdapter New SqlDataAdapter( _
- "SELECT * FROM dbo.Customers;", _
- "Data Source=(local);Integrated " & _
- "Security=SSPI;Initial Catalog=Northwind")
- adapter.Fill(customers, "Customers")
- Dim customerRow As CustomerDataSet.CustomersRow
- For Each customerRow In customers.Customers
- Console.WriteLine(customerRow.CustomerID)
- Next
下面是用于該示例的ADO.NET XML架構(gòu)。
- <?xml version="1.0" encoding="utf-8"?>
- <xs:schema id="CustomerDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="CustomerDataSet"
- msdata:IsDataSet="true"> <xs:complexType> <xs:choice
- maxOccurs="unbounded"> <xs:element name="Customers">
- <xs:complexType> <xs:sequence> <xs:element
- name="CustomerID" type="xs:string" minOccurs="0" />
- </xs:sequence> </xs:complexType>
- </xs:element>
- </xs:choice> </xs:complexType> </xs:element>
- </xs:schema>