DataSet.WriteXml 方法

定義

DataSet 寫入 XML 資料,並選擇性寫入結構描述。

多載

WriteXml(XmlWriter, XmlWriteMode)

使用指定的 DataSetXmlWriter,寫入 XmlWriteMode 的目前資料,並選擇性寫入結構描述。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema

WriteXml(String, XmlWriteMode)

使用指定的 DataSet,寫入 XmlWriteMode 的目前資料 (並選擇性寫入結構描述) 至指定的檔案。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema

WriteXml(TextWriter, XmlWriteMode)

使用指定的 DataSetTextWriter,寫入 XmlWriteMode 的目前資料,並選擇性寫入結構描述。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema

WriteXml(Stream, XmlWriteMode)

使用指定的 DataSetStream,寫入 XmlWriteMode 的目前資料,並選擇性寫入結構描述。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema

WriteXml(String)

DataSet 的目前資料寫入指定的檔案。

WriteXml(TextWriter)

使用指定的 DataSet,寫入 TextWriter 的目前資料。

WriteXml(XmlWriter)

DataSet 的目前資料寫入指定的 XmlWriter

WriteXml(Stream)

使用指定的 DataSet,寫入 Stream 的目前資料。

WriteXml(XmlWriter, XmlWriteMode)

使用指定的 DataSetXmlWriter,寫入 XmlWriteMode 的目前資料,並選擇性寫入結構描述。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema

public:
 void WriteXml(System::Xml::XmlWriter ^ writer, System::Data::XmlWriteMode mode);
public void WriteXml (System.Xml.XmlWriter? writer, System.Data.XmlWriteMode mode);
public void WriteXml (System.Xml.XmlWriter writer, System.Data.XmlWriteMode mode);
member this.WriteXml : System.Xml.XmlWriter * System.Data.XmlWriteMode -> unit
Public Sub WriteXml (writer As XmlWriter, mode As XmlWriteMode)

參數

writer
XmlWriter

要用來寫入的 XmlWriter

mode
XmlWriteMode

其中一個 XmlWriteMode 值。

範例

下列範例會 System.IO.FileStream 建立 用來建立新 XmlTextWriter 的 物件。 物件 XmlTextWriter 會與 方法搭配 WriteXml 使用,以撰寫 XML 檔。

private void WriteXmlToFile(DataSet thisDataSet)
{
    if (thisDataSet == null) { return; }

    // Create a file name to write to.
    string filename = "XmlDoc.xml";

    // Create the FileStream to write with.
    System.IO.FileStream stream = new System.IO.FileStream
        (filename, System.IO.FileMode.Create);

    // Create an XmlTextWriter with the fileStream.
    System.Xml.XmlTextWriter xmlWriter =
        new System.Xml.XmlTextWriter(stream,
        System.Text.Encoding.Unicode);

    // Write to the file with the WriteXml method.
    thisDataSet.WriteXml(xmlWriter);
    xmlWriter.Close();
}
Private Sub WriteXmlToFile(thisDataSet As DataSet)
    If thisDataSet Is Nothing Then
        Return
    End If

    ' Create a file name to write to.
    Dim filename As String = "XmlDoc.xml"

    ' Create the FileStream to write with.
    Dim stream As New System.IO.FileStream _
       (filename, System.IO.FileMode.Create)

    ' Create an XmlTextWriter with the fileStream.
    Dim xmlWriter As New System.Xml.XmlTextWriter _
       (stream, System.Text.Encoding.Unicode)

    ' Write to the file with the WriteXml method.
    thisDataSet.WriteXml(xmlWriter)
    xmlWriter.Close()
End Sub

備註

方法 WriteXml 提供一種方式,只寫入資料,或將資料和架構從 DataSet 寫入 XML 檔,而 WriteXmlSchema 方法只會寫入架構。 若要同時寫入資料和架構,請將 mode 參數設定為 WriteSchema

請注意, ReadXmlReadXmlSchema 方法也是如此。 若要讀取 XML 資料,或同時將架構和資料讀入 DataSet ,請使用 ReadXml 方法。 若要唯讀取架構,請使用 ReadXmlSchema 方法。

注意

InvalidOperationException如果要讀取或寫入至 實 IDynamicMetaObjectProvider 作且未實 IXmlSerializable 作 的資料行類型, DataRow 則會擲回 。

另請參閱

適用於

WriteXml(String, XmlWriteMode)

使用指定的 DataSet,寫入 XmlWriteMode 的目前資料 (並選擇性寫入結構描述) 至指定的檔案。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema

public:
 void WriteXml(System::String ^ fileName, System::Data::XmlWriteMode mode);
public void WriteXml (string fileName, System.Data.XmlWriteMode mode);
member this.WriteXml : string * System.Data.XmlWriteMode -> unit
Public Sub WriteXml (fileName As String, mode As XmlWriteMode)

參數

fileName
String

要寫入的目的檔案名稱 (包括路徑)。

mode
XmlWriteMode

其中一個 XmlWriteMode 值。

例外狀況

FileIOPermission 並不是設定為 Write

範例

下列範例會 WriteXml 使用 方法來撰寫 XML 檔。

private void WriteXmlToFile(DataSet thisDataSet)
{
    if (thisDataSet == null) { return; }

    // Create a file name to write to.
    string filename = "XmlDoc.xml";

    // Write to the file with the WriteXml method.
    thisDataSet.WriteXml(filename);
}
Private Sub WriteXmlToFile(thisDataSet As DataSet)
    If thisDataSet Is Nothing Then
        Return
    End If

    ' Create a file name to write to.
    Dim filename As String = "XmlDoc.xml"

    ' Write to the file with the WriteXml method.
    thisDataSet.WriteXml(filename)
End Sub

備註

方法 WriteXml 提供一種方式,只寫入資料,或將資料和架構從 DataSet 寫入 XML 檔,而 WriteXmlSchema 方法只會寫入架構。 若要同時寫入資料和架構,請將 mode 參數設定為 WriteSchema

請注意, ReadXmlReadXmlSchema 方法也是如此。 若要讀取 XML 資料,或同時將架構和資料讀入 DataSet ,請使用 ReadXml 方法。 若要唯讀取架構,請使用 ReadXmlSchema 方法。

注意

InvalidOperationException如果要讀取或寫入至 實 IDynamicMetaObjectProvider 作且未實 IXmlSerializable 作 的資料行類型, DataRow 則會擲回 。

另請參閱

適用於

WriteXml(TextWriter, XmlWriteMode)

使用指定的 DataSetTextWriter,寫入 XmlWriteMode 的目前資料,並選擇性寫入結構描述。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema

public:
 void WriteXml(System::IO::TextWriter ^ writer, System::Data::XmlWriteMode mode);
public void WriteXml (System.IO.TextWriter? writer, System.Data.XmlWriteMode mode);
public void WriteXml (System.IO.TextWriter writer, System.Data.XmlWriteMode mode);
member this.WriteXml : System.IO.TextWriter * System.Data.XmlWriteMode -> unit
Public Sub WriteXml (writer As TextWriter, mode As XmlWriteMode)

參數

writer
TextWriter

用來寫入文件的 TextWriter 物件。

mode
XmlWriteMode

其中一個 XmlWriteMode 值。

範例

下列範例會先建立具有一個 DataTable 、兩個數據行和十個數據列的簡單 DataSet 。 叫用 方法會將 DataSet 架構和資料寫入磁片 WriteXml 。 系統會建立第二 DataSet 個 ,並使用 ReadXml 方法來填入架構和資料。

private void DemonstrateReadWriteXMLDocumentWithFileStream()
{
    // Create a DataSet with one table and two columns.
    DataSet originalDataSet = new DataSet("dataSet");
    DataTable table = new DataTable("table");
    DataColumn idColumn = new DataColumn("id",
        Type.GetType("System.Int32"));
    idColumn.AutoIncrement= true;

    DataColumn itemColumn = new DataColumn("item");
    table.Columns.Add(idColumn);
    table.Columns.Add(itemColumn);
    originalDataSet.Tables.Add(table);
    // Add ten rows.

    DataRow newRow;
    for(int i = 0; i < 10; i++)
    {
        newRow = table.NewRow();
        newRow["item"]= "item " + i;
        table.Rows.Add(newRow);
    }
    originalDataSet.AcceptChanges();

    // Print out values of each table in the DataSet
    // using the function defined below.
    PrintValues(originalDataSet, "Original DataSet");

    // Write the schema and data to XML file with FileStream.
    string xmlFilename = "XmlDocument.xml";
    System.IO.FileStream streamWrite = new System.IO.FileStream
        (xmlFilename, System.IO.FileMode.Create);

    // Use WriteXml to write the XML document.
    originalDataSet.WriteXml(streamWrite);

    // Close the FileStream.
    streamWrite.Close();

    // Dispose of the original DataSet.
    originalDataSet.Dispose();
    // Create a new DataSet.
    DataSet newDataSet = new DataSet("New DataSet");

    // Read the XML document back in.
    // Create new FileStream to read schema with.
    System.IO.FileStream streamRead = new System.IO.FileStream
        (xmlFilename,System.IO.FileMode.Open);
    newDataSet.ReadXml(streamRead);

    // Print out values of each table in the DataSet
    // using the function defined below.
    PrintValues(newDataSet,"New DataSet");
}

private void PrintValues(DataSet dataSet, string label)
{
    Console.WriteLine("\n" + label);
    foreach(DataTable table in dataSet.Tables)
    {
        Console.WriteLine("TableName: " + table.TableName);
        foreach(DataRow row in table.Rows)
        {
            foreach(DataColumn column in table.Columns)
            {
                Console.Write("\table " + row[column] );
            }
            Console.WriteLine();
        }
    }
}
Private Sub DemonstrateReadWriteXMLDocumentWithFileStream()
    ' Create a DataSet with one table and two columns.
    Dim originalDataSet As New DataSet("dataSet")
    Dim table As New DataTable("table")
    Dim idColumn As New DataColumn("id", _
       Type.GetType("System.Int32"))
    idColumn.AutoIncrement = True

    Dim itemColumn As New DataColumn("item")
    table.Columns.Add(idColumn)
    table.Columns.Add(itemColumn)
    originalDataSet.Tables.Add(table)

    ' Add ten rows.
    Dim newRow As DataRow
    Dim i As Integer
    For i = 0 To 9
        newRow = table.NewRow()
        newRow("item") = "item " & i.ToString()
        table.Rows.Add(newRow)
    Next i
    originalDataSet.AcceptChanges()

    ' Print out values of each table in the DataSet 
    ' using the function defined below.
    PrintValues(originalDataSet, "Original DataSet")

    ' Write the schema and data to XML file with FileStream.
    Dim xmlFilename As String = "XmlDocument.xml"
    Dim streamWrite As New System.IO.FileStream _
       (xmlFilename, System.IO.FileMode.Create)

    ' Use WriteXml to write the XML document.
    originalDataSet.WriteXml(streamWrite)

    ' Close the FileStream.
    streamWrite.Close()
     
    ' Dispose of the original DataSet.
    originalDataSet.Dispose()
    ' Create a new DataSet.
    Dim newDataSet As New DataSet("New DataSet")
       
    ' Read the XML document back in. 
    ' Create new FileStream to read schema with.
    Dim streamRead As New System.IO.FileStream _
       (xmlFilename, System.IO.FileMode.Open)
     
    newDataSet.ReadXml(streamRead)
    ' Print out values of each table in the DataSet  
    ' using the function defined below.
    PrintValues(newDataSet, "New DataSet")
End Sub
   
Private Sub PrintValues(dataSet As DataSet, label As String)
    Console.WriteLine(ControlChars.Cr & label)
    Dim table As DataTable
    Dim row As DataRow
    Dim column As DataColumn
    For Each table In  dataSet.Tables
        Console.WriteLine("TableName: " & table.TableName)         
        For Each row In  table.Rows             
            For Each column In  table.Columns
                Console.Write(ControlChars.Tab & " " & _
                   row(column).ToString())
            Next column
            Console.WriteLine()
        Next row
    Next table
End Sub

備註

方法 WriteXml 提供一種方式,只寫入資料,或將資料和架構從 DataSet 寫入 XML 檔,而 WriteXmlSchema 方法只會寫入架構。 若要同時寫入資料和架構,請將 mode 參數設定為 WriteSchema

請注意, ReadXmlReadXmlSchema 方法也是如此。 若要讀取 XML 資料,或同時將架構和資料讀入 DataSet ,請使用 ReadXml 方法。 若要唯讀取架構,請使用 ReadXmlSchema 方法。

注意

InvalidOperationException如果要讀取或寫入至 實 IDynamicMetaObjectProvider 作且未實 IXmlSerializable 作 的資料行類型, DataRow 則會擲回 。

另請參閱

適用於

WriteXml(Stream, XmlWriteMode)

使用指定的 DataSetStream,寫入 XmlWriteMode 的目前資料,並選擇性寫入結構描述。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema

public:
 void WriteXml(System::IO::Stream ^ stream, System::Data::XmlWriteMode mode);
public void WriteXml (System.IO.Stream? stream, System.Data.XmlWriteMode mode);
public void WriteXml (System.IO.Stream stream, System.Data.XmlWriteMode mode);
member this.WriteXml : System.IO.Stream * System.Data.XmlWriteMode -> unit
Public Sub WriteXml (stream As Stream, mode As XmlWriteMode)

參數

stream
Stream

用來寫入檔案的 Stream 物件。

mode
XmlWriteMode

其中一個 XmlWriteMode 值。

備註

方法 WriteXml 提供一種方式,只寫入資料,或將資料和架構從 DataSet 寫入 XML 檔,而 WriteXmlSchema 方法只會寫入架構。 若要同時寫入資料和架構,請將 mode 參數設定為 WriteSchema

請注意, ReadXmlReadXmlSchema 方法也是如此。 若要讀取 XML 資料,或同時將架構和資料讀入 DataSet ,請使用 ReadXml 方法。 若要唯讀取架構,請使用 ReadXmlSchema 方法。

注意

InvalidOperationException如果要讀取或寫入至 實 IDynamicMetaObjectProvider 作且未實 IXmlSerializable 作 的資料行類型, DataRow 則會擲回 。

另請參閱

適用於

WriteXml(String)

DataSet 的目前資料寫入指定的檔案。

public:
 void WriteXml(System::String ^ fileName);
public void WriteXml (string fileName);
member this.WriteXml : string -> unit
Public Sub WriteXml (fileName As String)

參數

fileName
String

要寫入的目的檔案名稱 (包括路徑)。

例外狀況

FileIOPermission 並不是設定為 Write

備註

方法 WriteXml 提供一種方式,只寫入資料,或將資料和架構從 DataSet 寫入 XML 檔,而 WriteXmlSchema 方法只會寫入架構。 若要同時寫入資料和架構,請使用包含 mode 參數的其中一個多載,並將其值設定為 WriteSchema

請注意, ReadXmlReadXmlSchema 方法也是如此。 若要讀取 XML 資料,或同時將架構和資料讀入 DataSet ,請使用 ReadXml 方法。 若要唯讀取架構,請使用 ReadXmlSchema 方法。

注意

InvalidOperationException如果要讀取或寫入至 實 IDynamicMetaObjectProvider 作且未實 IXmlSerializable 作 的資料行類型, DataRow 則會擲回 。

另請參閱

適用於

WriteXml(TextWriter)

使用指定的 DataSet,寫入 TextWriter 的目前資料。

public:
 void WriteXml(System::IO::TextWriter ^ writer);
public void WriteXml (System.IO.TextWriter? writer);
public void WriteXml (System.IO.TextWriter writer);
member this.WriteXml : System.IO.TextWriter -> unit
Public Sub WriteXml (writer As TextWriter)

參數

writer
TextWriter

用來寫入的 TextWriter 物件。

備註

方法 WriteXml 提供一種方式,只寫入資料,或將資料和架構從 DataSet 寫入 XML 檔,而 WriteXmlSchema 方法只會寫入架構。 若要同時寫入資料和架構,請使用包含 mode 參數的其中一個多載,並將其值設定為 WriteSchema

請注意, ReadXmlReadXmlSchema 方法也是如此。 若要讀取 XML 資料,或同時將架構和資料讀入 DataSet ,請使用 ReadXml 方法。 若要唯讀取架構,請使用 ReadXmlSchema 方法。

注意

InvalidOperationException如果要從 中讀取或寫入實 IDynamicMetaObjectProvider 作的資料行類型 DataRow ,而且不會實 IXmlSerializable 作 ,則會擲回 。

另請參閱

適用於

WriteXml(XmlWriter)

DataSet 的目前資料寫入指定的 XmlWriter

public:
 void WriteXml(System::Xml::XmlWriter ^ writer);
public void WriteXml (System.Xml.XmlWriter? writer);
public void WriteXml (System.Xml.XmlWriter writer);
member this.WriteXml : System.Xml.XmlWriter -> unit
Public Sub WriteXml (writer As XmlWriter)

參數

writer
XmlWriter

要用來寫入的 XmlWriter

備註

方法 WriteXml 提供一種方式,只寫入資料,或將資料和架構從 DataSet 寫入 XML 檔,而 WriteXmlSchema 方法只會寫入架構。 若要同時寫入資料和架構,請使用包含 mode 參數的其中一個多載,並將其值設定為 WriteSchema

請注意,和 ReadXmlSchema 方法的相同 ReadXml 是分別的。 若要將 XML 資料或架構和資料讀取到 DataSet ,請使用 ReadXml 方法。 若要唯讀取架構,請使用 ReadXmlSchema 方法。

注意

InvalidOperationException如果要從 中讀取或寫入實 IDynamicMetaObjectProvider 作的資料行類型 DataRow ,而且不會實 IXmlSerializable 作 ,則會擲回 。

另請參閱

適用於

WriteXml(Stream)

使用指定的 DataSet,寫入 Stream 的目前資料。

public:
 void WriteXml(System::IO::Stream ^ stream);
public void WriteXml (System.IO.Stream? stream);
public void WriteXml (System.IO.Stream stream);
member this.WriteXml : System.IO.Stream -> unit
Public Sub WriteXml (stream As Stream)

參數

stream
Stream

用來寫入檔案的 Stream 物件。

範例

下列範例會 System.IO.FileStream 建立 物件。 然後,物件會與 方法搭配 WriteXml 使用,以撰寫 XML 檔。

private void WriteXmlToFile(DataSet thisDataSet)
{
    if (thisDataSet == null) { return; }

    // Create a file name to write to.
    string filename = "XmlDoc.xml";

    // Create the FileStream to write with.
    System.IO.FileStream stream = new System.IO.FileStream
        (filename, System.IO.FileMode.Create);

    // Write to the file with the WriteXml method.
    thisDataSet.WriteXml(stream);
}
Private Sub WriteXmlToFile(thisDataSet As DataSet)
     If thisDataSet Is Nothing Then
         Return
     End If 

    ' Create a file name to write to.
     Dim filename As String = "XmlDoc.xml"

     ' Create the FileStream to write with.
     Dim stream As New System.IO.FileStream _
        (filename, System.IO.FileMode.Create)

     ' Write to the file with the WriteXml method.
     thisDataSet.WriteXml(stream)
End Sub

備註

方法 WriteXml 提供一種方式,只寫入資料,或將資料和架構從 DataSet 寫入 XML 檔,而 WriteXmlSchema 方法只會寫入架構。 若要同時寫入資料和架構,請使用包含 mode 參數的其中一個多載,並將其值設定為 WriteSchema

請注意,和 ReadXmlSchema 方法的相同 ReadXml 是分別的。 若要將 XML 資料或架構和資料讀取到 DataSet ,請使用 ReadXml 方法。 若要唯讀取架構,請使用 ReadXmlSchema 方法。

注意

InvalidOperationException如果要從 中讀取或寫入實 IDynamicMetaObjectProvider 作的資料行類型 DataRow ,而且不會實 IXmlSerializable 作 ,則會擲回 。

另請參閱

適用於