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

c#
小樊
121
2024-06-25 23:06:54

在C#中,可以使用XmlSerializer類(lèi)來(lái)實(shí)現(xiàn)Dataset的序列化和反序列化。下面是一個(gè)簡(jiǎn)單的示例:

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

public class Program
{
    public static void Main()
    {
        // 創(chuàng)建一個(gè)包含數(shù)據(jù)的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);
        }
        
        // 打印反序列化結(jié)果
        foreach (DataRow row in deserializedDataSet.Tables["SampleTable"].Rows)
        {
            Console.WriteLine("ID: {0}, Name: {1}", row["ID"], row["Name"]);
        }
    }
}

在上面的示例中,首先創(chuàng)建一個(gè)包含數(shù)據(jù)的DataSet對(duì)象,并使用XmlSerializer類(lèi)將DataSet對(duì)象序列化到文件" data.xml"中。然后再?gòu)奈募蟹葱蛄谢疍ataSet對(duì)象,并打印反序列化結(jié)果。

請(qǐng)注意,XmlSerializer類(lèi)要求序列化的類(lèi)型具有公共的無(wú)參數(shù)構(gòu)造函數(shù),因此需要確保DataSet對(duì)象可以被正確序列化和反序列化。

0