System.Runtime.Serialization.SerializationException: 二进制流“0”不包含有效的 BinaryHeader。这可能是由于无效流,或由于在序列化和反序列化之间的对象版本更改。
源错误: 
行 259:            char[] cchar = (char[])bf.Deserialize(ms);
==========================================================================
这是错误报告,我的目的是把加密生成的二进制数据读入数据库里,及向数据库里读取二进制数据转化为明文 

解决方案 »

  1.   

    你直接把数据转换为二进制不行吗?? #region 把字符串转化为二进制
            private byte[] charToBinary(string str)
            {
                ASCIIEncoding encoding = new ASCIIEncoding();
                byte[] tag = encoding.GetBytes(str);
                return tag;
            }
            #endregion
      

  2.   

    byte[] cchar = bf.Deserialize(ms);
      

  3.   

    跟存取图片差不多:http://dotnet.aspx.cc/article/2a5dd7c6-a45a-48ab-a2e8-342a29f17506/read.aspx
    http://dotnet.aspx.cc/article/ecd9ae16-8ff0-4a1c-9b9f-5e8b641cb1b1/read.aspx
      

  4.   

    byte[] newPwd= UE.GetBytes(txtNewPwd.Text);
    //对上一步得到的 Unicode 编码值进行哈希处理。
    byte[] newHashPwd = SHhash.ComputeHash(newPwd);
    数据库操作,用参数处理:
    Sql:……set password=@password……
    ……
    cmd.Parameters.Add("@password",newHashPwd);
    ……
      

  5.   

    private byte[] PhotoToArray( string path )
    {
        FileStream stream = new FileStream( path , FileMode.Open , FileAccess.Read ) ;
        byte[] bufferPhoto =new byte[stream.Length] ;
        stream.Read( bufferPhoto,0,Convert.ToInt32( stream.Length ) ) ;
        stream.Flush();
        stream.Close();    return bufferPhoto ;
    }
      

  6.   

    异常详细信息: System.Runtime.Serialization.SerializationException: 在分析完成之前就遇到流结尾。
    行 259:            char[] cchar = (char[])bf.Deserialize(ms);
    ========================================================================
    最新的报错
      

  7.   

    yuan74521940(飞翔中的菜鸟)
    =========================
    大哥我需要的是把数据保存在数据库里的,你的方法好象是保存在txt文件里吧
      

  8.   

    //把二进制的图片插到数据库
    private void Save(byte[] image)
    {
        string sql = "insert into table2(aaa,photo) values(@aaa,@photo)";
        SqlParameter[] param=new SqlParameter[2];
        param[0] =new SqlParameter("@aaa",SqlDbType.Int);
        param[0].Value = 1;
        param[1]= new SqlParameter("@photo",SqlDbType.Image);
        param[1].Value= image;    SqlConnection conn= new SqlConnection();
        conn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings[0];    SqlCommand commd= new SqlCommand(sql,conn);
        commd.Parameters.Add(param[0]);
        commd.Parameters.Add(param[1]);    try
        {
            conn.Open();
            commd.ExecuteNonQuery();
            MessageBox.Show("把图片成功的插入数据库");
        }
        catch(Exception ex)
        {
            throw ex;
        }
        finally
        {
            conn.Close();
        }
    }
      

  9.   

    兄弟,要序列化的必须有Serializable属性.我的是这样解决的.