Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Biorąc pod uwagę schemat XML zgodny ze standardem XSD (XML Schema Definition Language), można wygenerować silnie typizowane DataSet przy użyciu narzędzia XSD.exe dostarczonego z zestawem Sdk (Software Development Kit).
(Aby utworzyć xsd z tabel bazy danych, zobacz WriteXmlSchema lub Praca z zestawami danych w programie Visual Studio).
Poniższy kod przedstawia składnię generowania DataSet przy użyciu tego narzędzia.
xsd.exe /d /l:CS XSDSchemaFileName.xsd /eld /n:XSDSchema.Namespace
W tej składni /d dyrektywa informuje narzędzie, aby wygenerować zestaw DataSet, a /l: informuje narzędzie, jakiego języka należy użyć (na przykład C# lub Visual Basic .NET). Opcjonalna /eld dyrektywa określa, że do wykonywania zapytań względem wygenerowanego zestawu danych można użyć linQ to DataSet. Ta opcja jest używana, gdy jest również określona /d opcja. Aby uzyskać więcej informacji, zobacz Querying Typed DataSets (Zapytania dotyczące typów zestawów danych). Opcjonalna /n: dyrektywa nakazuje narzędziu również wygenerowanie przestrzeni nazw dla DataSet o nazwie XSDSchema.Namespace. Dane wyjściowe polecenia są XSDSchemaFileName.cs, które można skompilować i użyć w aplikacji ADO.NET. Wygenerowany kod można skompilować jako bibliotekę lub moduł.
Poniższy kod przedstawia składnię kompilowania wygenerowanego kodu jako biblioteki przy użyciu kompilatora języka C# (csc.exe).
csc.exe /t:library XSDSchemaFileName.cs /r:System.dll /r:System.Data.dll
Dyrektywa /t: nakazuje narzędziu skompilowanie do biblioteki, a /r: dyrektywy określają biblioteki zależne wymagane do skompilowania. Dane wyjściowe polecenia to XSDSchemaFileName.dll, które można przekazać do kompilatora podczas kompilowania aplikacji ADO.NET za pomocą /r: dyrektywy .
Poniższy kod przedstawia składnię uzyskiwania dostępu do przestrzeni nazw przekazanej do XSD.exe w aplikacji ADO.NET.
Imports XSDSchema.Namespace
using XSDSchema.Namespace;
W poniższym przykładzie kodu użyto typowanego DataSet o nazwie CustomerDataSet do załadowania listy klientów z bazy danych Northwind. Po załadowaniu Fill danych przy użyciu metody przykład przechodzi przez każdego klienta w Customers tabeli przy użyciu obiektu typed CustomersRow (DataRow). Zapewnia bezpośredni dostęp do kolumny CustomerID, a nie za pośrednictwem kolekcji 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);
Poniżej przedstawiono schemat XML używany w tym przykładzie:
<?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>