Deserialize a ByteArray into DataTable

In WCF, sometimes we get a ByteArray as an output data contract and we want to deserialize that ByteArray into a DataTable.

Here we could get an idea how we can deserialize a ByteArray into DataTable.  DataTable becomes useful int the situations when we want to save data into database using DataAdapter by passing a DataSet.

In this code, we create a MemoryStream object by passing byte array and then using BinaryFormatter, we can directly deserialize MemoryStream object into DataTable. 

private DataSet DeserailizeByteArrayToDataSet(byte[] byteArrayData)
{
    DataSet tempDataSet = new DataSet();
    DataTable dt;
    // Deserializing into datatable   
    using (MemoryStream stream = new MemoryStream(byteArrayData))
    {
        BinaryFormatter bformatter = new BinaryFormatter();
        dt = (DataTable)bformatter.Deserialize(stream);
        if (dt != null)
        {
            foreach (DataRow row in dt.Rows)
            {
                Console.WriteLine("----------------------");
                Console.WriteLine("PostalCode:" + row["POSTAL_CODE"]);
                Console.WriteLine("CountryCode:" + row["COUNTRY_CODE"]);
                Console.WriteLine("ProcessNumber:" + row["PROCESS_NUMBER"]);
                Console.WriteLine("ProcessStatus:" + row["PROCESS_STATUS"]);
                Console.WriteLine("TimeStamp:" + row["TIMESTAMP"]);
                Console.WriteLine("----------------------");
            }
        }
    }
    // Adding DataTable into DataSet   
    tempDataSet.Tables.Add(dt);
    return tempDataSet;
}

Thanks...

 

Ebook Download
View all
Learn
View all