使用c#在sqlserver中存储自定义对象

使用c#在sqlserver中存储自定义对象

ID:8965517

大小:38.50 KB

页数:2页

时间:2018-04-13

使用c#在sqlserver中存储自定义对象_第1页
使用c#在sqlserver中存储自定义对象_第2页
资源描述:

《使用c#在sqlserver中存储自定义对象》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、使用C#在SqlServer中存储自定义对象我们在使用SQLserver作为系统数据时,有时候可能会遇到这样一个问题,怎么样将我们自定义的对象存储在SqlServer数据库中?这里我介绍一个比较容易操作的方法,即使用编程的方式处理这个问题。这里我们需要思考一个问题,就是数据库中字段类型中没有我们自定义的对象类型,那么我们就需要把我们自定义的对象转换成数据库中字段类型。在我们使用Sql时会发现有两种类型我们比较少用到,就是varbinary和image两种字段类型,这两种都是字节数据类型,两者之间的区别在于varbinar

2、y只能存储小于8000字节的数组,而image可以存储小于2G字节的数组,那么对于我们来说,使用image对象基本上就足够了。这样我们就要解决如何将自定义对象转成成字节数组了。对于文件而言,有专门的方法处理,对于自定义类型我们可以使用序列化的方式来解决这个问题。这里提供两个方法供参考:///

///将指定对象序列化成字节数组//////泛型对象类型///指定的对象///

3、eturns>字节数组publicstaticbyte[]Serializer(Titem){MemoryStreamms=newMemoryStream();//创建内存流对象try{IFormatterformatter=newBinaryFormatter();//定义BinaryFormatter以序列化DataSet对象formatter.Serialize(ms,item);//把DataSet对象序列化到内存流returnms.GetBuffer();}catch(Exceptio

4、nex){throwex;}finally{ms.Close();//关闭内存流对象ms.Dispose();//释放资源}}///

///将字节数组反序列化成对象//////泛型对象类型///需要被反序列化的数组///序列化后的对象publicstaticTDeserialize(byte[]data)深圳生活网:http://

5、www.szshenghuo.com{try{IFormatterformatter=newBinaryFormatter();//定义BinaryFormatter以序列化DataSet对象MemoryStreamms=newMemoryStream(data);//创建内存流对象objectobj=formatter.Deserialize(ms);//把DataSet对象序列化到内存流ms.Close();//关闭内存流对象ms.Dispose();//释放资源return(T)obj;}catch{returnd

6、efault(T);}}这里使用了泛型,需要.NET2.0以及以上版本支持。现在我们就是要解决如何将对象插入到数据库中了。假设有一张表Table和自定义对象C,有如下结构:字段名字段类型字段大小AVarchar50BImage16现在将A=“深圳生活网”;B=C数组插入到数据库中,可以使用如下方法:Stringsql=“InsertIntoTable(A,B)values(@A,@B)”;SqlParameter[]parameters={newSqlParameter("@A",SqlDbType.VarChar,50

7、),newSqlParameter("@B",SqlDbType.Image)//注意这里不能设置成数据库默认的字段大小16,否则正常插入,除非你的对象的大小确实在16个字节之内};parameters[0].Value=A;parameters[2].Value=Serializer(C);现在我们要解决如何读取字段B的内容,并转换成我们自定义的类型。使用方法如下:Stringsql=“select*fromTable”;……………………byte[]temp=(byte[])reader[“B”];Cmyc=De

8、serialize(temp);……………………以上就是解决使用C#在SqlServer中存储自定义对象的一种方法,希望对大家有帮助。(szshenghuo.com站长原创,转摘请注明!)深圳生活网:http://www.szshenghuo.com

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。