DataTable.WriteXml 方法

定義

DataTable 的目前內容寫成 XML。

多載

WriteXml(TextWriter, Boolean)

使用指定的 TextWriter,將 DataTable 目前的內容寫入為 XML。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

WriteXml(TextWriter, XmlWriteMode)

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

WriteXml(String, XmlWriteMode)

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

WriteXml(Stream, XmlWriteMode)

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

WriteXml(XmlWriter, Boolean)

使用指定的 XmlWriter,將 DataTable 目前的內容寫入為 XML。

WriteXml(XmlWriter, XmlWriteMode)

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

WriteXml(Stream, XmlWriteMode, Boolean)

使用指定的 DataTable,寫入 XmlWriteMode 的目前資料 (並選擇性寫入結構描述) 至指定的檔案。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

WriteXml(TextWriter, XmlWriteMode, Boolean)

使用指定的 DataTableTextWriter,寫入 XmlWriteMode 的目前資料,並選擇性寫入結構描述。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

WriteXml(String, Boolean)

使用指定的檔案,將 DataTable 目前的內容寫成 XML。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

WriteXml(Stream, Boolean)

使用指定的 Stream,將 DataTable 目前的內容寫入為 XML。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

WriteXml(XmlWriter, XmlWriteMode, Boolean)

使用指定的 DataTableXmlWriter,寫入 XmlWriteMode 的目前資料,並選擇性寫入結構描述。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

WriteXml(String)

使用指定的檔案,將 DataTable 目前的內容寫成 XML。

WriteXml(TextWriter)

使用指定的 TextWriter,將 DataTable 目前的內容寫入為 XML。

WriteXml(Stream)

使用指定的 Stream,將 DataTable 目前的內容寫入為 XML。

WriteXml(String, XmlWriteMode, Boolean)

使用指定的檔案和 DataTable,寫入 XmlWriteMode 的目前資料,並選擇性寫入結構描述。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

WriteXml(XmlWriter)

使用指定的 XmlWriter,將 DataTable 目前的內容寫入為 XML。

範例

下列主控台應用程式會建立兩 DataTableDataSet 實例,將每個實例新增至 ,建立兩個 DataRelation 資料表的相關 ,然後使用 WriteXml 方法將父資料表內所包含的資料寫入至 TextWriter 。 此範例示範將 參數設定 writeHierarchy 為其每個值時的行為。

注意

此範例示範如何使用其中一個多載版本的 WriteXml。 如需其他可能可用的範例,請參閱個別多載主題。

static void Main()
{
    DataSet ds = new DataSet();
    DataTable customerTable = GetCustomers();
    DataTable orderTable = GetOrders();

    ds.Tables.Add(customerTable);
    ds.Tables.Add(orderTable);
    ds.Relations.Add("CustomerOrder",
        new DataColumn[] { customerTable.Columns[0] },
        new DataColumn[] { orderTable.Columns[1] }, true);

    System.IO.StringWriter writer = new System.IO.StringWriter();
    customerTable.WriteXml(writer, XmlWriteMode.WriteSchema, false);
    PrintOutput(writer, "Customer table, without hierarchy");

    writer = new System.IO.StringWriter();
    customerTable.WriteXml(writer, XmlWriteMode.WriteSchema, true);
    PrintOutput(writer, "Customer table, with hierarchy");

    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
}

private static DataTable GetCustomers()
{
    // Create sample Customers table, in order
    // to demonstrate the behavior of the DataTableReader.
    DataTable table = new DataTable();

    // Create two columns, ID and Name.
    DataColumn idColumn = table.Columns.Add("ID", typeof(System.Int32));
    table.Columns.Add("Name", typeof(System.String));

    // Set the ID column as the primary key column.
    table.PrimaryKey = new DataColumn[] { idColumn };

    table.Rows.Add(new object[] { 1, "Mary" });
    table.Rows.Add(new object[] { 2, "Andy" });
    table.Rows.Add(new object[] { 3, "Peter" });
    table.Rows.Add(new object[] { 4, "Russ" });
    table.AcceptChanges();
    return table;
}

private static DataTable GetOrders()
{
    // Create sample Customers table, in order
    // to demonstrate the behavior of the DataTableReader.
    DataTable table = new DataTable();

    // Create three columns; OrderID, CustomerID, and OrderDate.
    table.Columns.Add(new DataColumn("OrderID", typeof(System.Int32)));
    table.Columns.Add(new DataColumn("CustomerID", typeof(System.Int32)));
    table.Columns.Add(new DataColumn("OrderDate", typeof(System.DateTime)));

    // Set the OrderID column as the primary key column.
    table.PrimaryKey = new DataColumn[] { table.Columns[0] };

    table.Rows.Add(new object[] { 1, 1, "12/2/2003" });
    table.Rows.Add(new object[] { 2, 1, "1/3/2004" });
    table.Rows.Add(new object[] { 3, 2, "11/13/2004" });
    table.Rows.Add(new object[] { 4, 3, "5/16/2004" });
    table.Rows.Add(new object[] { 5, 3, "5/22/2004" });
    table.Rows.Add(new object[] { 6, 4, "6/15/2004" });
    table.AcceptChanges();
    return table;
}

private static void PrintOutput(System.IO.TextWriter writer, string caption)
{
    Console.WriteLine("==============================");
    Console.WriteLine(caption);
    Console.WriteLine("==============================");
    Console.WriteLine(writer.ToString());
}
Sub Main()
  Dim ds As New DataSet
  Dim customerTable As DataTable = GetCustomers()
  Dim orderTable As DataTable = GetOrders()

  ds.Tables.Add(customerTable)
  ds.Tables.Add(orderTable)
  ds.Relations.Add("CustomerOrder", _
   New DataColumn() {customerTable.Columns(0)}, _
   New DataColumn() {orderTable.Columns(1)}, True)

  Dim writer As New System.IO.StringWriter
  customerTable.WriteXml(writer, XmlWriteMode.WriteSchema, False)
  PrintOutput(writer, "Customer table, without hierarchy")

  writer = New System.IO.StringWriter
  customerTable.WriteXml(writer, XmlWriteMode.WriteSchema, True)
  PrintOutput(writer, "Customer table, with hierarchy")

  Console.WriteLine("Press any key to continue.")
  Console.ReadKey()
End Sub

Private Function GetOrders() As DataTable
  ' Create sample Customers table, in order
  ' to demonstrate the behavior of the DataTableReader.
  Dim table As New DataTable

  ' Create three columns, OrderID, CustomerID, and OrderDate.
  table.Columns.Add(New DataColumn("OrderID", GetType(System.Int32)))
  table.Columns.Add(New DataColumn("CustomerID", GetType(System.Int32)))
  table.Columns.Add(New DataColumn("OrderDate", GetType(System.DateTime)))

  ' Set the OrderID column as the primary key column.
  table.PrimaryKey = New DataColumn() {table.Columns(0)}

  table.Rows.Add(New Object() {1, 1, #12/2/2003#})
  table.Rows.Add(New Object() {2, 1, #1/3/2004#})
  table.Rows.Add(New Object() {3, 2, #11/13/2004#})
  table.Rows.Add(New Object() {4, 3, #5/16/2004#})
  table.Rows.Add(New Object() {5, 3, #5/22/2004#})
  table.Rows.Add(New Object() {6, 4, #6/15/2004#})
  table.AcceptChanges()
  Return table
End Function

Private Function GetCustomers() As DataTable
  ' Create sample Customers table, in order
  ' to demonstrate the behavior of the DataTableReader.
  Dim table As New DataTable

  ' Create two columns, ID and Name.
  Dim idColumn As DataColumn = table.Columns.Add("ID", _
      GetType(System.Int32))
  table.Columns.Add("Name", GetType(System.String))

  ' Set the ID column as the primary key column.
  table.PrimaryKey = New DataColumn() {idColumn}

  table.Rows.Add(New Object() {1, "Mary"})
  table.Rows.Add(New Object() {2, "Andy"})
  table.Rows.Add(New Object() {3, "Peter"})
  table.Rows.Add(New Object() {4, "Russ"})
  table.AcceptChanges()
  Return table
End Function

Private Sub PrintOutput( _
   ByVal writer As System.IO.TextWriter, ByVal caption As String)

  Console.WriteLine("==============================")
  Console.WriteLine(caption)
  Console.WriteLine("==============================")
  Console.WriteLine(writer.ToString())
End Sub

此範例會在主控台視窗中顯示以下輸出:

==============================
Customer table, without hierarchy
==============================
<NewDataSet>
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema
" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Table1">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Table1">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="ID" type="xs:int" />
                <xs:element name="Name" type="xs:string" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
      <xs:unique name="Constraint1" msdata:PrimaryKey="true">
        <xs:selector xpath=".//Table1" />
        <xs:field xpath="ID" />
      </xs:unique>
    </xs:element>
  </xs:schema>
  <Table1>
    <ID>1</ID>
    <Name>Mary</Name>
  </Table1>
  <Table1>
    <ID>2</ID>
    <Name>Andy</Name>
  </Table1>
  <Table1>
    <ID>3</ID>
    <Name>Peter</Name>
  </Table1>
  <Table1>
    <ID>4</ID>
    <Name>Russ</Name>
  </Table1>
</NewDataSet>
==============================
Customer table, with hierarchy
==============================
<NewDataSet>
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema
" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Table1">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Table1">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="ID" type="xs:int" />
                <xs:element name="Name" type="xs:string" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="Table2">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="OrderID" type="xs:int" />
                <xs:element name="CustomerID" type="xs:int" minOccurs="0" />
                <xs:element name="OrderDate" type="xs:dateTime" minOccurs="0" />

              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
      <xs:unique name="Constraint1" msdata:PrimaryKey="true">
        <xs:selector xpath=".//Table1" />
        <xs:field xpath="ID" />
      </xs:unique>
      <xs:unique name="Table2_Constraint1" msdata:ConstraintName="Constraint1" m
sdata:PrimaryKey="true">
        <xs:selector xpath=".//Table2" />
        <xs:field xpath="OrderID" />
      </xs:unique>
      <xs:keyref name="CustomerOrder" refer="Constraint1">
        <xs:selector xpath=".//Table2" />
        <xs:field xpath="CustomerID" />
      </xs:keyref>
    </xs:element>
  </xs:schema>
  <Table1>
    <ID>1</ID>
    <Name>Mary</Name>
  </Table1>
  <Table1>
    <ID>2</ID>
    <Name>Andy</Name>
  </Table1>
  <Table1>
    <ID>3</ID>
    <Name>Peter</Name>
  </Table1>
  <Table1>
    <ID>4</ID>
    <Name>Russ</Name>
  </Table1>
  <Table2>
    <OrderID>1</OrderID>
    <CustomerID>1</CustomerID>
    <OrderDate>2003-12-02T00:00:00.0000000-08:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>2</OrderID>
    <CustomerID>1</CustomerID>
    <OrderDate>2004-01-03T00:00:00.0000000-08:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>3</OrderID>
    <CustomerID>2</CustomerID>
    <OrderDate>2004-11-13T00:00:00.0000000-08:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>4</OrderID>
    <CustomerID>3</CustomerID>
    <OrderDate>2004-05-16T00:00:00.0000000-07:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>5</OrderID>
    <CustomerID>3</CustomerID>
    <OrderDate>2004-05-22T00:00:00.0000000-07:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>6</OrderID>
    <CustomerID>4</CustomerID>
    <OrderDate>2004-06-15T00:00:00.0000000-07:00</OrderDate>
  </Table2>
</NewDataSet>

備註

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

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

注意

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

WriteXml(TextWriter, Boolean)

使用指定的 TextWriter,將 DataTable 目前的內容寫入為 XML。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

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

參數

writer
TextWriter

用來撰寫內容的 TextWriter

writeHierarchy
Boolean

如果為 true,就會寫入目前資料表及它所有子代的內容。 如果為 false (預設值),就只會寫入目前資料表的資料。

範例

下列主控台應用程式會建立兩 DataTableDataSet 實例,將每個實例新增至 ,建立兩個 DataRelation 資料表的相關 ,然後使用 WriteXml 方法將父資料表內所包含的資料寫入至 TextWriter 。 此範例示範將 參數設定 writeHierarchytrue 時的行為。

static void Main()
{
    DataSet ds = new DataSet();
    DataTable customerTable = GetCustomers();
    DataTable orderTable = GetOrders();

    ds.Tables.Add(customerTable);
    ds.Tables.Add(orderTable);
    ds.Relations.Add("CustomerOrder",
        new DataColumn[] { customerTable.Columns[0] },
        new DataColumn[] { orderTable.Columns[1] }, true);

    System.IO.StringWriter writer = new System.IO.StringWriter();
    customerTable.WriteXml(writer, true);
    PrintOutput(writer, "Customer table, with hierarchy");

    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
}

private static DataTable GetCustomers()
{
    // Create sample Customers table, in order
    // to demonstrate the behavior of the DataTableReader.
    DataTable table = new DataTable();

    // Create two columns, ID and Name.
    DataColumn idColumn = table.Columns.Add("ID", typeof(System.Int32));
    table.Columns.Add("Name", typeof(System.String));

    // Set the ID column as the primary key column.
    table.PrimaryKey = new DataColumn[] { idColumn };

    table.Rows.Add(new object[] { 1, "Mary" });
    table.Rows.Add(new object[] { 2, "Andy" });
    table.Rows.Add(new object[] { 3, "Peter" });
    table.Rows.Add(new object[] { 4, "Russ" });
    table.AcceptChanges();
    return table;
}

private static DataTable GetOrders()
{
    // Create sample Customers table, in order
    // to demonstrate the behavior of the DataTableReader.
    DataTable table = new DataTable();

    // Create three columns; OrderID, CustomerID, and OrderDate.
    table.Columns.Add(new DataColumn("OrderID", typeof(System.Int32)));
    table.Columns.Add(new DataColumn("CustomerID", typeof(System.Int32)));
    table.Columns.Add(new DataColumn("OrderDate", typeof(System.DateTime)));

    // Set the OrderID column as the primary key column.
    table.PrimaryKey = new DataColumn[] { table.Columns[0] };

    table.Rows.Add(new object[] { 1, 1, "12/2/2003" });
    table.Rows.Add(new object[] { 2, 1, "1/3/2004" });
    table.Rows.Add(new object[] { 3, 2, "11/13/2004" });
    table.Rows.Add(new object[] { 4, 3, "5/16/2004" });
    table.Rows.Add(new object[] { 5, 3, "5/22/2004" });
    table.Rows.Add(new object[] { 6, 4, "6/15/2004" });
    table.AcceptChanges();
    return table;
}

private static void PrintOutput(System.IO.TextWriter stream,
    string caption)
{
    Console.WriteLine("==============================");
    Console.WriteLine(caption);
    Console.WriteLine("==============================");
    Console.WriteLine(stream.ToString());
}
Sub Main()
  Dim ds As New DataSet
  Dim customerTable As DataTable = GetCustomers()
  Dim orderTable As DataTable = GetOrders()

  ds.Tables.Add(customerTable)
  ds.Tables.Add(orderTable)
  ds.Relations.Add("CustomerOrder", _
   New DataColumn() {customerTable.Columns(0)}, _
   New DataColumn() {orderTable.Columns(1)}, True)

  Dim writer As New System.IO.StringWriter
  customerTable.WriteXml(writer, True)
  PrintOutput(writer, "Customer table, with hierarchy")

  Console.WriteLine("Press any key to continue.")
  Console.ReadKey()
End Sub

Private Function GetOrders() As DataTable
  ' Create sample Customers table, in order
  ' to demonstrate the behavior of the DataTableReader.
  Dim table As New DataTable

  ' Create three columns, OrderID, CustomerID, and OrderDate.
  table.Columns.Add(New DataColumn("OrderID", GetType(System.Int32)))
  table.Columns.Add(New DataColumn("CustomerID", GetType(System.Int32)))
  table.Columns.Add(New DataColumn("OrderDate", GetType(System.DateTime)))

  ' Set the OrderID column as the primary key column.
  table.PrimaryKey = New DataColumn() {table.Columns(0)}

  table.Rows.Add(New Object() {1, 1, #12/2/2003#})
  table.Rows.Add(New Object() {2, 1, #1/3/2004#})
  table.Rows.Add(New Object() {3, 2, #11/13/2004#})
  table.Rows.Add(New Object() {4, 3, #5/16/2004#})
  table.Rows.Add(New Object() {5, 3, #5/22/2004#})
  table.Rows.Add(New Object() {6, 4, #6/15/2004#})
  table.AcceptChanges()
  Return table
End Function

Private Function GetCustomers() As DataTable
  ' Create sample Customers table, in order
  ' to demonstrate the behavior of the DataTableReader.
  Dim table As New DataTable

  ' Create two columns, ID and Name.
  Dim idColumn As DataColumn = table.Columns.Add("ID", _
      GetType(System.Int32))
  table.Columns.Add("Name", GetType(System.String))

  ' Set the ID column as the primary key column.
  table.PrimaryKey = New DataColumn() {idColumn}

  table.Rows.Add(New Object() {1, "Mary"})
  table.Rows.Add(New Object() {2, "Andy"})
  table.Rows.Add(New Object() {3, "Peter"})
  table.Rows.Add(New Object() {4, "Russ"})
  table.AcceptChanges()
  Return table
End Function

Private Sub PrintOutput( _
   ByVal stream As System.IO.TextWriter, ByVal caption As String)

  Console.WriteLine("==============================")
  Console.WriteLine(caption)
  Console.WriteLine("==============================")
  Console.WriteLine(stream.ToString())
End Sub

備註

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

一般而言, WriteXml 方法只會寫入目前資料表的資料。 若要寫入目前資料表及其所有子系相關資料表的資料,請使用 設定為 true 的參數呼叫 方法 writeHierarchy

注意

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

另請參閱

適用於

WriteXml(TextWriter, XmlWriteMode)

使用指定的 DataTableTextWriter,寫入 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 值。

備註

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

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

注意

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

另請參閱

適用於

WriteXml(String, XmlWriteMode)

使用指定的檔案和 DataTable,寫入 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 值。

備註

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

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

注意

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

另請參閱

適用於

WriteXml(Stream, XmlWriteMode)

使用指定的 DataTable,寫入 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

將資料寫入其中的資料流。

mode
XmlWriteMode

其中一個 XmlWriteMode 值。

備註

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

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

注意

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

另請參閱

適用於

WriteXml(XmlWriter, Boolean)

使用指定的 XmlWriter,將 DataTable 目前的內容寫入為 XML。

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

參數

writer
XmlWriter

要用來寫入內容的 XmlWriter

writeHierarchy
Boolean

如果為 true,就會寫入目前資料表及它所有子代的內容。 如果為 false (預設值),就只會寫入目前資料表的資料。

備註

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

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

一般而言, WriteXml 方法只會寫入目前資料表的資料。 若要寫入目前資料表的資料及其整個子系相關資料表,請呼叫 方法,並將 writeHierarchy 參數設定為 true

注意

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

另請參閱

適用於

WriteXml(XmlWriter, XmlWriteMode)

使用指定的 DataTableXmlWriter,寫入 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 值。

備註

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

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

注意

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

另請參閱

適用於

WriteXml(Stream, XmlWriteMode, Boolean)

使用指定的 DataTable,寫入 XmlWriteMode 的目前資料 (並選擇性寫入結構描述) 至指定的檔案。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

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

參數

stream
Stream

將資料寫入其中的資料流。

mode
XmlWriteMode

其中一個 XmlWriteMode 值。

writeHierarchy
Boolean

如果為 true,就會寫入目前資料表及它所有子代的內容。 如果為 false (預設值),就只會寫入目前資料表的資料。

備註

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

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

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

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

一般而言, WriteXml 方法只會寫入目前資料表的資料。 若要寫入目前資料表及其所有子系相關資料表的資料,請呼叫 方法,並將 writeHierarchy 參數設定為 true

注意

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

另請參閱

適用於

WriteXml(TextWriter, XmlWriteMode, Boolean)

使用指定的 DataTableTextWriter,寫入 XmlWriteMode 的目前資料,並選擇性寫入結構描述。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

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

參數

writer
TextWriter

寫入文件所用的 TextWriter

mode
XmlWriteMode

其中一個 XmlWriteMode 值。

writeHierarchy
Boolean

如果為 true,就會寫入目前資料表及它所有子代的內容。 如果為 false (預設值),就只會寫入目前資料表的資料。

範例

下列主控台應用程式會建立兩 DataTable 個實例,將每個實例新增至 ,建立與兩個 DataRelation 資料表相關的 ,然後使用 WriteXml 方法將父資料表中包含的資料寫入至 TextWriterDataSet 。 此範例示範將 參數設定 writeHierarchy 為其每個值時的行為。

static void Main()
{
    DataSet ds = new DataSet();
    DataTable customerTable = GetCustomers();
    DataTable orderTable = GetOrders();

    ds.Tables.Add(customerTable);
    ds.Tables.Add(orderTable);
    ds.Relations.Add("CustomerOrder",
        new DataColumn[] { customerTable.Columns[0] },
        new DataColumn[] { orderTable.Columns[1] }, true);

    System.IO.StringWriter writer = new System.IO.StringWriter();
    customerTable.WriteXml(writer, XmlWriteMode.WriteSchema, false);
    PrintOutput(writer, "Customer table, without hierarchy");

    writer = new System.IO.StringWriter();
    customerTable.WriteXml(writer, XmlWriteMode.WriteSchema, true);
    PrintOutput(writer, "Customer table, with hierarchy");

    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
}

private static DataTable GetCustomers()
{
    // Create sample Customers table, in order
    // to demonstrate the behavior of the DataTableReader.
    DataTable table = new DataTable();

    // Create two columns, ID and Name.
    DataColumn idColumn = table.Columns.Add("ID", typeof(System.Int32));
    table.Columns.Add("Name", typeof(System.String));

    // Set the ID column as the primary key column.
    table.PrimaryKey = new DataColumn[] { idColumn };

    table.Rows.Add(new object[] { 1, "Mary" });
    table.Rows.Add(new object[] { 2, "Andy" });
    table.Rows.Add(new object[] { 3, "Peter" });
    table.Rows.Add(new object[] { 4, "Russ" });
    table.AcceptChanges();
    return table;
}

private static DataTable GetOrders()
{
    // Create sample Customers table, in order
    // to demonstrate the behavior of the DataTableReader.
    DataTable table = new DataTable();

    // Create three columns; OrderID, CustomerID, and OrderDate.
    table.Columns.Add(new DataColumn("OrderID", typeof(System.Int32)));
    table.Columns.Add(new DataColumn("CustomerID", typeof(System.Int32)));
    table.Columns.Add(new DataColumn("OrderDate", typeof(System.DateTime)));

    // Set the OrderID column as the primary key column.
    table.PrimaryKey = new DataColumn[] { table.Columns[0] };

    table.Rows.Add(new object[] { 1, 1, "12/2/2003" });
    table.Rows.Add(new object[] { 2, 1, "1/3/2004" });
    table.Rows.Add(new object[] { 3, 2, "11/13/2004" });
    table.Rows.Add(new object[] { 4, 3, "5/16/2004" });
    table.Rows.Add(new object[] { 5, 3, "5/22/2004" });
    table.Rows.Add(new object[] { 6, 4, "6/15/2004" });
    table.AcceptChanges();
    return table;
}

private static void PrintOutput(System.IO.TextWriter writer,
    string caption)
{
    Console.WriteLine("==============================");
    Console.WriteLine(caption);
    Console.WriteLine("==============================");
    Console.WriteLine(writer.ToString());
}
Sub Main()
  Dim ds As New DataSet
  Dim customerTable As DataTable = GetCustomers()
  Dim orderTable As DataTable = GetOrders()

  ds.Tables.Add(customerTable)
  ds.Tables.Add(orderTable)
  ds.Relations.Add("CustomerOrder", _
   New DataColumn() {customerTable.Columns(0)}, _
   New DataColumn() {orderTable.Columns(1)}, True)

  Dim writer As New System.IO.StringWriter
  customerTable.WriteXml(writer, XmlWriteMode.WriteSchema, False)
  PrintOutput(writer, "Customer table, without hierarchy")

  writer = New System.IO.StringWriter
  customerTable.WriteXml(writer, XmlWriteMode.WriteSchema, True)
  PrintOutput(writer, "Customer table, with hierarchy")

  Console.WriteLine("Press any key to continue.")
  Console.ReadKey()
End Sub

Private Function GetOrders() As DataTable
  ' Create sample Customers table, in order
  ' to demonstrate the behavior of the DataTableReader.
  Dim table As New DataTable

  ' Create three columns, OrderID, CustomerID, and OrderDate.
  table.Columns.Add(New DataColumn("OrderID", GetType(System.Int32)))
  table.Columns.Add(New DataColumn("CustomerID", GetType(System.Int32)))
  table.Columns.Add(New DataColumn("OrderDate", GetType(System.DateTime)))

  ' Set the OrderID column as the primary key column.
  table.PrimaryKey = New DataColumn() {table.Columns(0)}

  table.Rows.Add(New Object() {1, 1, #12/2/2003#})
  table.Rows.Add(New Object() {2, 1, #1/3/2004#})
  table.Rows.Add(New Object() {3, 2, #11/13/2004#})
  table.Rows.Add(New Object() {4, 3, #5/16/2004#})
  table.Rows.Add(New Object() {5, 3, #5/22/2004#})
  table.Rows.Add(New Object() {6, 4, #6/15/2004#})
  table.AcceptChanges()
  Return table
End Function

Private Function GetCustomers() As DataTable
  ' Create sample Customers table, in order
  ' to demonstrate the behavior of the DataTableReader.
  Dim table As New DataTable

  ' Create two columns, ID and Name.
  Dim idColumn As DataColumn = table.Columns.Add("ID", _
      GetType(System.Int32))
  table.Columns.Add("Name", GetType(System.String))

  ' Set the ID column as the primary key column.
  table.PrimaryKey = New DataColumn() {idColumn}

  table.Rows.Add(New Object() {1, "Mary"})
  table.Rows.Add(New Object() {2, "Andy"})
  table.Rows.Add(New Object() {3, "Peter"})
  table.Rows.Add(New Object() {4, "Russ"})
  table.AcceptChanges()
  Return table
End Function

Private Sub PrintOutput( _
   ByVal writer As System.IO.TextWriter, ByVal caption As String)

  Console.WriteLine("==============================")
  Console.WriteLine(caption)
  Console.WriteLine("==============================")
  Console.WriteLine(writer.ToString())
End Sub

此範例會在主控台視窗中顯示以下輸出:

==============================
Customer table, without hierarchy
==============================
<NewDataSet>
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema
" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Table1">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Table1">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="ID" type="xs:int" />
                <xs:element name="Name" type="xs:string" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
      <xs:unique name="Constraint1" msdata:PrimaryKey="true">
        <xs:selector xpath=".//Table1" />
        <xs:field xpath="ID" />
      </xs:unique>
    </xs:element>
  </xs:schema>
  <Table1>
    <ID>1</ID>
    <Name>Mary</Name>
  </Table1>
  <Table1>
    <ID>2</ID>
    <Name>Andy</Name>
  </Table1>
  <Table1>
    <ID>3</ID>
    <Name>Peter</Name>
  </Table1>
  <Table1>
    <ID>4</ID>
    <Name>Russ</Name>
  </Table1>
</NewDataSet>
==============================
Customer table, with hierarchy
==============================
<NewDataSet>
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema
" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Table1">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Table1">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="ID" type="xs:int" />
                <xs:element name="Name" type="xs:string" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="Table2">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="OrderID" type="xs:int" />
                <xs:element name="CustomerID" type="xs:int" minOccurs="0" />
                <xs:element name="OrderDate" type="xs:dateTime" minOccurs="0" />

              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
      <xs:unique name="Constraint1" msdata:PrimaryKey="true">
        <xs:selector xpath=".//Table1" />
        <xs:field xpath="ID" />
      </xs:unique>
      <xs:unique name="Table2_Constraint1" msdata:ConstraintName="Constraint1" m
sdata:PrimaryKey="true">
        <xs:selector xpath=".//Table2" />
        <xs:field xpath="OrderID" />
      </xs:unique>
      <xs:keyref name="CustomerOrder" refer="Constraint1">
        <xs:selector xpath=".//Table2" />
        <xs:field xpath="CustomerID" />
      </xs:keyref>
    </xs:element>
  </xs:schema>
  <Table1>
    <ID>1</ID>
    <Name>Mary</Name>
  </Table1>
  <Table1>
    <ID>2</ID>
    <Name>Andy</Name>
  </Table1>
  <Table1>
    <ID>3</ID>
    <Name>Peter</Name>
  </Table1>
  <Table1>
    <ID>4</ID>
    <Name>Russ</Name>
  </Table1>
  <Table2>
    <OrderID>1</OrderID>
    <CustomerID>1</CustomerID>
    <OrderDate>2003-12-02T00:00:00.0000000-08:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>2</OrderID>
    <CustomerID>1</CustomerID>
    <OrderDate>2004-01-03T00:00:00.0000000-08:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>3</OrderID>
    <CustomerID>2</CustomerID>
    <OrderDate>2004-11-13T00:00:00.0000000-08:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>4</OrderID>
    <CustomerID>3</CustomerID>
    <OrderDate>2004-05-16T00:00:00.0000000-07:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>5</OrderID>
    <CustomerID>3</CustomerID>
    <OrderDate>2004-05-22T00:00:00.0000000-07:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>6</OrderID>
    <CustomerID>4</CustomerID>
    <OrderDate>2004-06-15T00:00:00.0000000-07:00</OrderDate>
  </Table2>
</NewDataSet>

備註

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

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

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

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

一般而言, WriteXml 方法只會寫入目前資料表的資料。 若要寫入目前資料表及其所有子系相關資料表的資料,請呼叫 方法,並將 writeHierarchy 參數設定為 true

注意

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

另請參閱

適用於

WriteXml(String, Boolean)

使用指定的檔案,將 DataTable 目前的內容寫成 XML。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

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

參數

fileName
String

要寫入 XML 資料的檔案。

writeHierarchy
Boolean

如果為 true,就會寫入目前資料表及它所有子代的內容。 如果為 false (預設值),就只會寫入目前資料表的資料。

備註

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

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

一般而言, WriteXml 方法只會寫入目前資料表的資料。 若要寫入目前資料表及其所有子系相關資料表的資料,請呼叫 方法,並將 writeHierarchy 參數設定為 true

注意

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

另請參閱

適用於

WriteXml(Stream, Boolean)

使用指定的 Stream,將 DataTable 目前的內容寫入為 XML。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

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

參數

stream
Stream

將資料寫入其中的資料流。

writeHierarchy
Boolean

如果為 true,就會寫入目前資料表及它所有子代的內容。 如果為 false (預設值),就只會寫入目前資料表的資料。

備註

WriteXmlSchema使用 方法,將 的 DataTable 架構寫入 XML 檔。 架構包含資料表、關聯性和條件約束定義。

XML 架構是使用 XSD 標準來撰寫。

若要將資料寫入 XML 檔,請使用 WriteXml 方法。

一般而言, WriteXml 方法只會寫入目前資料表的資料。 若要寫入目前資料表及其所有子系相關資料表的資料,請呼叫 方法,並將 writeHierarchy 參數設定為 true

注意

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

另請參閱

適用於

WriteXml(XmlWriter, XmlWriteMode, Boolean)

使用指定的 DataTableXmlWriter,寫入 XmlWriteMode 的目前資料,並選擇性寫入結構描述。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

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

參數

writer
XmlWriter

寫入文件所用的 XmlWriter

mode
XmlWriteMode

其中一個 XmlWriteMode 值。

writeHierarchy
Boolean

如果為 true,就會寫入目前資料表及它所有子代的內容。 如果為 false (預設值),就只會寫入目前資料表的資料。

備註

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

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

一般而言, WriteXml 方法只會寫入目前資料表的資料。 若要寫入目前資料表的資料及其整個子代相關資料表,請使用 設定為 true 的參數呼叫 方法 writeHierarchy

注意

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

另請參閱

適用於

WriteXml(String)

使用指定的檔案,將 DataTable 目前的內容寫成 XML。

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

參數

fileName
String

要寫入 XML 資料的檔案。

備註

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

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

注意

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

另請參閱

適用於

WriteXml(TextWriter)

使用指定的 TextWriter,將 DataTable 目前的內容寫入為 XML。

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 提供一種方式,只寫入資料,或將資料和架構從 DataTable 寫入 XML 檔,而 WriteXmlSchema 方法只會寫入架構。 若要同時寫入資料和架構,請使用包含 XmlWriteMode 參數的其中一個多載,並將其值設定為 WriteSchema

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

注意

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

另請參閱

適用於

WriteXml(Stream)

使用指定的 Stream,將 DataTable 目前的內容寫入為 XML。

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

將資料寫入其中的資料流。

備註

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

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

注意

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

另請參閱

適用於

WriteXml(String, XmlWriteMode, Boolean)

使用指定的檔案和 DataTable,寫入 XmlWriteMode 的目前資料,並選擇性寫入結構描述。 若要寫入結構描述,請設定 mode 參數的值為 WriteSchema。 若要儲存資料表及其所有子系的資料,請將 writeHierarchy 參數設定為 true

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

參數

fileName
String

資料將寫入其中的檔案名稱。

mode
XmlWriteMode

其中一個 XmlWriteMode 值。

writeHierarchy
Boolean

如果為 true,就會寫入目前資料表及它所有子代的內容。 如果為 false (預設值),就只會寫入目前資料表的資料。

備註

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

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

一般而言, WriteXml 方法只會儲存目前資料表的資料。 如果您想要儲存目前資料表和所有架構的資料, WriteXml 方法會提供方法只寫入資料,或同時將資料和架構寫入 DataTable XML 檔,而 WriteXmlSchema 方法只會寫入架構。 若要同時寫入資料和架構,請使用包含 XmlWriteMode 參數的其中一個多載,並將其值設定為 WriteSchema

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

一般而言, WriteXml 方法只會寫入目前資料表的資料。 若要寫入目前資料表和所有子代相關資料表的資料,請呼叫 方法,並將 writeHierarchy 參數設定為 true

注意

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

另請參閱

適用於

WriteXml(XmlWriter)

使用指定的 XmlWriter,將 DataTable 目前的內容寫入為 XML。

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 提供一種方式,只寫入資料,或將資料和架構從 DataTable 寫入 XML 檔,而 WriteXmlSchema 方法只會寫入架構。 若要同時寫入資料和架構,請使用包含 XmlWriteMode 參數的其中一個多載,並將其值設定為 WriteSchema

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

注意

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

另請參閱

適用於