Imports System.Data
Imports System.Data.SqlClient
Imports System.Runtime.Serialization
Imports System.IO
Imports System.Xml
Private Sub cmdCreate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCreate.Click
Dim cs As String = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind"
Dim sql As String = "SELECT * FROM Employees"
Dim cn As New SqlConnection(cs)
Dim cmd As New SqlCommand(sql, cn)
Dim da As New SqlDataAdapter(cmd)
da.Fill(ds, "TestTable")
Me.WriteBinary("C:\testbinary.bin", ds)
ds.WriteXml("C:\testbinary.xml")
End Sub
Public Sub WriteBinary(ByVal FileName As String, ByVal ds As DataSet)
ds.RemotingFormat = SerializationFormat.Binary
Dim myFormatter As IFormatter = New Formatters.Binary.BinaryFormatter
Dim myStream As Stream = New FileStream(FileName, FileMode.Create)
myFormatter.Serialize(myStream, ds)
End Sub
Public Function ReadBinary(ByVal FileName As String) As DataSet
Dim ds As New DataSet
ds.RemotingFormat = SerializationFormat.Binary
Dim myFormatter As IFormatter = New Formatters.Binary.BinaryFormatter
Dim myStream As Stream = New FileStream(FileName, FileMode.Open)
ds = CType(myFormatter.Deserialize(myStream), DataSet)
Return ds
End Function
Private Sub btnDeserialize_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeserialize.Click
Dim ds As New DataSet
ds = Me.ReadBinary("C:\testbinary.bin")
Debug.Assert(ds.Tables.Count > 1, "Ain't go no data")
Debug.Assert(ds.Tables(0).Rows.Count > 1, "Ain't got no rows")
End Sub
/************************************************/
'二进制压缩数据集
/*************************
dim bArrayResult() as byte = new byte(){}
ds.RemotingFormat = SerializationFormat.Binary
dim myStream as Stream = new MemoryStream()
Dim myFormatter As IFormatter = New Formatters.Binary.BinaryFormatter
myFormatter.Serialize(myStream, ds)
bArrayResult = myStream.ToArray()
myStream.Close()
*************************/
'反序列化 得到DataSet
/*************************
dim bUserData() as byte = bArrayResult
dim myStream as Stream = new MemoryStream(bUserData)
Dim myFormatter As IFormatter = New Formatters.Binary.BinaryFormatter
dim objResult as object = myFormatter.Deserialize(ms)
dim dsResult as DataSet = DirectCast(objResult, DataSet)
myStream.Close()
*************************/
Imports System.Data.SqlClient
Imports System.Runtime.Serialization
Imports System.IO
Imports System.Xml
Private Sub cmdCreate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCreate.Click
Dim cs As String = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind"
Dim sql As String = "SELECT * FROM Employees"
Dim cn As New SqlConnection(cs)
Dim cmd As New SqlCommand(sql, cn)
Dim da As New SqlDataAdapter(cmd)
da.Fill(ds, "TestTable")
Me.WriteBinary("C:\testbinary.bin", ds)
ds.WriteXml("C:\testbinary.xml")
End Sub
Public Sub WriteBinary(ByVal FileName As String, ByVal ds As DataSet)
ds.RemotingFormat = SerializationFormat.Binary
Dim myFormatter As IFormatter = New Formatters.Binary.BinaryFormatter
Dim myStream As Stream = New FileStream(FileName, FileMode.Create)
myFormatter.Serialize(myStream, ds)
End Sub
Public Function ReadBinary(ByVal FileName As String) As DataSet
Dim ds As New DataSet
ds.RemotingFormat = SerializationFormat.Binary
Dim myFormatter As IFormatter = New Formatters.Binary.BinaryFormatter
Dim myStream As Stream = New FileStream(FileName, FileMode.Open)
ds = CType(myFormatter.Deserialize(myStream), DataSet)
Return ds
End Function
Private Sub btnDeserialize_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeserialize.Click
Dim ds As New DataSet
ds = Me.ReadBinary("C:\testbinary.bin")
Debug.Assert(ds.Tables.Count > 1, "Ain't go no data")
Debug.Assert(ds.Tables(0).Rows.Count > 1, "Ain't got no rows")
End Sub
/************************************************/
'二进制压缩数据集
/*************************
dim bArrayResult() as byte = new byte(){}
ds.RemotingFormat = SerializationFormat.Binary
dim myStream as Stream = new MemoryStream()
Dim myFormatter As IFormatter = New Formatters.Binary.BinaryFormatter
myFormatter.Serialize(myStream, ds)
bArrayResult = myStream.ToArray()
myStream.Close()
*************************/
'反序列化 得到DataSet
/*************************
dim bUserData() as byte = bArrayResult
dim myStream as Stream = new MemoryStream(bUserData)
Dim myFormatter As IFormatter = New Formatters.Binary.BinaryFormatter
dim objResult as object = myFormatter.Deserialize(ms)
dim dsResult as DataSet = DirectCast(objResult, DataSet)
myStream.Close()
*************************/
浙公网安备 33010602011771号