產生強型別的 DataSet (ADO.NET)

更新: November 2007

如果 XML 結構描述是採用 XML 結構描述定義語言 (XSD) 標準進行編譯,則可以使用 Windows Software Development Kit (SDK) 所提供的 XSD.exe 工具產生強型別 DataSet

下列程式碼顯示使用這個工具來產生 DataSet 所用的語法。

xsd.exe /d /l:CS XSDSchemaFileName.xsd /eld /n:XSDSchema.Namespace

在這個語法中,/d 指示詞告訴工具產生 DataSet,而 /l: 則告訴工具應該使用哪一種語言 (例如,C# 或 Visual Basic .NET)。選擇性的 /eld 指示詞會指定您可以使用 LINQ to DataSet,查詢產生的 DataSet。這個選項會在也有指定 /d 選項時使用。如需詳細資訊,請參閱查詢具型別 DataSet。選用的 /n: 指示詞會告訴工具也應該產生 DataSet 的命名空間,稱為 XSDSchema.Namespace。命令的輸出為 XSDSchemaFileName.cs,可以在 ADO.NET 應用程式中編譯和使用。產生的程式碼可以編譯為程式庫或模組。

下列程式碼顯示使用 C# 編譯器 (csc.exe),將產生的程式碼編譯成程式庫的語法。

csc.exe /t:library XSDSchemaFileName.cs /r:System.dll /r:System.Data.dll

/t: 指示詞告訴工具要編譯到程式庫,而 /r: 指示詞則指定編譯所需要的相依程式庫。該命令的輸出為 XSDSchemaFileName.dll,而在使用 /r: 指示詞編譯 ADO.NET 應用程式時,可以將該檔案傳遞給編譯器。

下列程式碼顯示存取 ADO.NET 應用程式內傳遞給 XSD.exe 命名空間的語法。

Imports XSDSchema.Namespace
using XSDSchema.Namespace;

下列程式碼範例使用名為 CustomerDataSet 且具型別的 DataSet,從 Northwind 資料庫載入客戶清單。一旦使用 Fill 方法載入資料,該範例便會使用具型別 CustomersRow (DataRow) 物件,在 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
CustomerDataSet customers = new CustomerDataSet();
SqlDataAdapter adapter = new SqlDataAdapter(
  "SELECT * FROM dbo.Customers;",
  "Data Source=(local);Integrated " +
  "Security=SSPI;Initial Catalog=Northwind");

adapter.Fill(customers, "Customers");

foreach(CustomerDataSet.CustomersRow customerRow in customers.Customers)
  Console.WriteLine(customerRow.CustomerID);

下列為 XML 結構描述範例。

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="CustomerDataSet"  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>

請參閱

參考

DataColumnCollection

DataSet

其他資源

具型別的 DataSet (ADO.NET)

DataSet、DataTable 及 DataView (ADO.NET)