开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 4579|回复: 0

[源码] 将对象存储到blob字段中

[复制链接]

0

精华

2

贡献

1

赞扬

帖子
9
软币
121
在线时间
5 小时
注册时间
2013-7-11
发表于 2013-7-11 11:18:05 | 显示全部楼层 |阅读模式
本帖最后由 david050930 于 2013-7-11 11:23 编辑

最近一直在研究使用C#开发程序来接收邮件,分析mime模式的邮件觉得该类中的属性非常之多,且不一定有多少个,因此想直接把mail对象直接存到数据库中,主题、时间、内容等可以提取出来另存,方便查询。
现将保存过程的代码拿出来与大家分享,可能有些朋友水平高,不屑来看,没关系,只要不攻击我就行,欢迎拍砖,省得大家到别处去查了。或者大家有更好的接收邮件方案或方法可与我讨论,我也想多学习一下。
我最近也在看dev的那个mailClient,真把我看晕了,谁有那个项目带中文注释的能提供一份给我吗?先谢谢了
如下:
            table1是我测试建的表,内有字段c1、c2、c3、c4  字段c4数据类型是blob的。
            MemoryStream ms = new MemoryStream();//定义内存流对象,用来存放DataTable序列化后的值
            try
            {
                OraHelper orahelper = new OraHelper();
                DataTable dt = orahelper.RunQuerySql("select * from table1 where c1=1", "table1");
                byte[] bArrayResult = null; //用于存放序列化后的数据
                dt.RemotingFormat = SerializationFormat.Binary; //指定DataTable串行化格式是二进制
                IFormatter IF = new BinaryFormatter();//产生二进制序列化格式
                IF.Serialize(ms, dt);//串行化到内存中
                bArrayResult = ms.ToArray(); // 将DataTable转化成byte[]
                OracleParameter[] paras = { new OracleParameter(":C4", OracleType.Blob,bArrayResult.Length) };
                paras[0].Value = bArrayResult;
                orahelper.ExecuteSql("update table1 set C4 = :C4 where c1=2", paras);
               
                byte[] bt = (byte[])orahelper.RunQuerySql("select c4 from table1 where c1=2","table1").Rows[0].ItemArray[0];
                MemoryStream mss = new MemoryStream(bt,0,bt.Length);
                DataTable dtrtn = (DataTable)IF.Deserialize(mss);
               
            }
            catch (IOException ie)
            {
                throw new Exception(ie.ToString());
            }
            finally
            {
                ms.Close();
                ms.Dispose();
            }

评分

参与人数 1贡献 +2 赞扬 +1 收起 理由
羽叶 + 2 + 1

查看全部评分

回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-23 16:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表