c#

C#Dataset的序列化与反序列化方法

小樊
145
2024-06-25 23:06:54
栏目: 编程语言

在C#中,可以使用XmlSerializer类来实现Dataset的序列化和反序列化。下面是一个简单的示例:

using System;
using System.Data;
using System.IO;
using System.Xml.Serialization;

public class Program
{
    public static void Main()
    {
        // 创建一个包含数据的DataSet
        DataSet dataSet = new DataSet("SampleDataSet");
        
        DataTable table = new DataTable("SampleTable");
        table.Columns.Add("ID", typeof(int));
        table.Columns.Add("Name", typeof(string));
        
        table.Rows.Add(1, "Alice");
        table.Rows.Add(2, "Bob");
        
        dataSet.Tables.Add(table);
        
        // 序列化DataSet
        XmlSerializer serializer = new XmlSerializer(typeof(DataSet));
        
        using (FileStream fileStream = new FileStream("data.xml", FileMode.Create))
        {
            serializer.Serialize(fileStream, dataSet);
        }
        
        // 反序列化DataSet
        DataSet deserializedDataSet;
        
        using (FileStream fileStream = new FileStream("data.xml", FileMode.Open))
        {
            deserializedDataSet = (DataSet)serializer.Deserialize(fileStream);
        }
        
        // 打印反序列化结果
        foreach (DataRow row in deserializedDataSet.Tables["SampleTable"].Rows)
        {
            Console.WriteLine("ID: {0}, Name: {1}", row["ID"], row["Name"]);
        }
    }
}

在上面的示例中,首先创建一个包含数据的DataSet对象,并使用XmlSerializer类将DataSet对象序列化到文件" data.xml"中。然后再从文件中反序列化DataSet对象,并打印反序列化结果。

请注意,XmlSerializer类要求序列化的类型具有公共的无参数构造函数,因此需要确保DataSet对象可以被正确序列化和反序列化。

0
看了该问题的人还看了