试试使用MemoryStream做为Serialize的参数,从面得到一个byte的数组,把这个数组存到数据库就可以了。

解决方案 »

  1.   

    你把那个文件读成BYTE流也可以的么,然后存成LOB(ORACLE是BLOB)对象就可以了
      

  2.   

    没有测试,大致如下吧:
    MemoryStream fs = new MemoryStream();
    BinaryFormatter formatter = new BinaryFormatter();
    formatter.Serialize(fs, book);byte[] bts = fs.GetBuffer();
      

  3.   

    恩 关键是byte[]与string之间的转换总出问题
      

  4.   

    如果这个byte[]是从文件中读取的,肯定不能转成STRINGSTRING是以\0或者\0\0(以前的一些标准)结束的,从文件或者非ASCII流中读取的byte[]中含有大量'\0',转成STRING肯定不对只能以二进制方式,直接把byte[]以LOB(Large object)方式存储到DB中SQL SERVER和ORACLE都支持LOB的