Serialization

System.Data.SqlClient.SqlConnection Conn = new System.Data.SqlClient.SqlConnection();
            Conn.ConnectionString = "Data Source=(Local);Initial Catalog=MyTest;User ID=sa";
            Conn.Open();

            System.Data.SqlClient.SqlCommand Cmd = new System.Data.SqlClient.SqlCommand();
            Cmd.Connection = Conn;

            System.Runtime.Serialization.Formatters.Binary.BinaryFormatter S_Format = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
            System.IO.MemoryStream S_Stream = new System.IO.MemoryStream();
            S_Format.Serialize(S_Stream, pictureBox1.Image);

            byte[] TmpByte = new byte[S_Stream.Length];
            S_Stream.Seek(0, System.IO.SeekOrigin.Begin);
            S_Stream.Read(TmpByte, 0, (Int32)S_Stream.Length);
          
            S_Stream.Close(); 
            MessageBox.Show(TmpByte.Length.ToString());

            string TmpGuid = System.Guid.NewGuid().ToString();
            Cmd.CommandType = CommandType.Text;
           
            Cmd.CommandText += "INSERT INTO MyTest.dbo.img(id,thing) VALUES('" + TmpGuid + "',@Test)" + "/r/n";
            Cmd.CommandText += "SELECT * FROM MyTest.dbo.img WHERE id='" + TmpGuid + "'" + "/r/n";

           
            Cmd.Parameters.Add("@Test",SqlDbType.Image);
            Cmd.Parameters["@Test"].Value = TmpByte;

            System.Data.SqlClient.SqlDataReader TmpRead = Cmd.ExecuteReader() as System.Data.SqlClient.SqlDataReader;
            TmpRead.Read();

            MessageBox.Show(TmpRead[0].ToString() + "      Finish");

            byte[] GetTmpByte = TmpRead[1] as byte[];

            MessageBox.Show(GetTmpByte.Length.ToString());

            System.IO.MemoryStream MemStream = new System.IO.MemoryStream();
            MemStream.Write(GetTmpByte, 0, GetTmpByte.Length);

            MemStream.Seek(0, System.IO.SeekOrigin.Begin);
            pictureBox2.Image = S_Format.Deserialize(MemStream) as System.Drawing.Image;

            Cmd.Dispose();
            Conn.Close();
            Conn.Dispose();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值