注意:我要存储文件二进制流的列的类型是text,不是image类型。

我已经实现了从数据库中读取text类型的二进制流,,现在就是不知道怎么存进去.

我的部分关键代码:

StreamReader sr = new StreamReader(FilePath, System.Text.Encoding.GetEncoding("GB2312"), true);

string filetext = sr.ReadLine();//这是要存进数据库的文件二进制流文本

他们告诉我具体该用FileStream这个类来读取...但是我不知道怎么用...

上面我的代码存到数据库后,我再读取出来二进制流转换成文件后,图片就无浏览..估计是我的代码是没有读完二进制流就保存到数据库了...

说明:上面如果保存图片二进制流成功存到数据库后,在数据库看到的值可能是:“BM諪”是这样的..

我的这种方法是错误的...希望大家能帮我看看,应该怎么改...

非常感谢..

问题补充:

数据库存储二进制流的列的类型不是image,而是text类型 ,我的读取二进制字符串已经可以转换成文件了...现在就是把二进制字符串保存到数据库的时候有问题..

这是我把文件转换为二进制字符串的代码

string FilePath = this.openFileDialog1.FileName;                        //得到文件路径

string filename = FilePath.Substring(FilePath.LastIndexOf("\\") + 1);   //得到上传文件的文名

string filetext =string.Empty;

FileStream fs = new FileStream(FilePath, FileMode.OpenOrCreate, FileAccess.Read);

Byte[] fileByte = new Byte[(int)fs.Length];

fs.Read(fileByte, 0, fileByte.Length);

filetext = System.Text.Encoding.Default.GetString(fileByte); //将指定字节数组中的说有字节解码为一个字符串

fs.Close();

其他回答 共4条

System.IO.FileStream fs = new System.IO.FileStream(图片路径, FileMode.OpenOrCreate, FileAccess.Read);

byte[] fileByte = new byte[fs.Length];

fs.Read(fileByte, 0, (int)fs.Length);

然后将fileByte存到库里就行了。

回答者: kgdxpr | 四级 | 2010-5-19 16:59

text,你就当string处理就行了

思路就是先得到图片文件的对象,然后转成byte[]

然后转成string

text存储二进制文件不如image好,可能小文件速度变的慢

回答者: howeverlee | 五级 | 2010-5-19 17:04

FileStream stream;

IFormatter iFormatter = new BinaryFormatter();

stream = new FileStream("图片);

//序列化

formatter.Serialize(stream, "目标");

stream.Close();

//读取的时候用反序列化

formatter.Deserialize()

//转化为图片格式

回答者: hack6500 | 三级 | 2010-5-19 18:19

private Byte[] getphoto(string photopath)   //读取照片文件到字节数组

{

string str = photopath;

FileStream file = new FileStream(str, FileMode.Open, FileAccess.Read);

Byte[] byteData = new Byte[file.Length];

file.Read(byteData, 0, byteData.Length);

file.Close();

return byteData;

}

SQL Server下图片的插入与读取时间:2010-04-25 21:57:08来源:网络 作者:未知 点击:385次

下午向数据库SQL SERVER中遇到添加图片类型数据的问题,本以为在界面管理器中可以直接(通过指定路径把图片的数据保存起来)添加图片却不然。网上搜了下找到了相关的较专业的资料,整合解读一下:

下午向数据库SQL SERVER中遇到添加图片类型数据的问题,本以为在界面管理器中可以直接(通过指定路径把图片的数据保存起来)添加图片却不然。网上搜了下找到了相关的较专业的资料,整合解读一下:

两种方法:

第一就是在数据库中存储图片的路径,然后在程序中根据读取的路径读取图片;这种方法简单、容易使用,但是在图片过多时不好管理。

第二种就是将图片转换成二进制存储于数据库中,sql server 2005有个image数据类型,专门用于存储图片,Image数据类型存储的是长度不确定的二进制数据,最大长度是2GB。

第二种方法(详情请参阅:详述的过程)

简述过程:

当然首先得有存储图片字段的数据库、表。

如何插入图片:

大致流程:其他图片格式--》image类型的转化--》到MemoryStream流的转换--》到二进制的转换--》插入到数据库。

如何得到图片:

大致流程:选取数据库中的image类型字段--》转化为二进制流--》转化为MemoryStream流--》转化为Image图片格式类型。

其它:如何插入读取一个文件、如何保存数据库中的image字段到一个文件。。

本篇文章来源于:开发学院 http://edu.codepub.com   原文链接:http://edu.codepub.com/2010/0425/22271.php

C#图片转换成二进制流并且保存到sql server数据库的更多相关文章

  1. java中如何把图片转换成二进制流的代码

    在学习期间,把开发过程经常用到的一些代码段做个备份,下边代码内容是关于java中如何把图片转换成二进制流的代码,应该能对各朋友也有用处. public byte[] SetImageToByteArr ...

  2. C#将image中的显示的图片转换成二进制

    原文:C#将image中的显示的图片转换成二进制 1.将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才 ...

  3. [转]C#将image中的显示的图片转换成二进制

    本文转自:http://www.cnblogs.com/shuang121/archive/2012/07/09/2582654.html .将Image图像文件存入到数据库中 我们知道数据库里的Im ...

  4. java将图片转换成二进制

    package com.oumyye.图片; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; imp ...

  5. C#中 将图片保存到Sql server 中

    private void Form1_Load(object sender, EventArgs e) { #region 保存数据库 string url = @"C:\Users\Adm ...

  6. net9:图片文件转换成二进制流存入SQL数据库,以及从数据库中读取二进制流输出文件

    原文发布时间为:2008-08-10 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...

  7. PDF转换成二进制字符串写入 HTTP 输出流

    最近项目需要做电子签章,需要网页打开PDF签章后保存:正好复习哈二进制和流的转换: 文件转换成二进制字符串写入HTTP输出流 protected void Page_Load(object sende ...

  8. php将文件转换成二进制输出[转]

    header( "Content-type: image/jpeg"); $PSize = filesize('1.jpg'); $picturedata = fread(fope ...

  9. 减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术)

    在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文我们讲解了 “利用将小图标合成一张背景图来减少HTTP请求”, ...

随机推荐

  1. pollard_rho 学习总结 Miller_Rabbin 复习总结

    吐槽一下名字,泼辣的肉..OwO 我们知道分解出一个整数的所有质因子是O(sqrt(n)/ln(n))的 但是当n=10^18的时候就显得非常无力的 这个算法可以在大概O(n^(1/4))的时间复杂度 ...

  2. 用Nodejs连接MySQL(原文链接)

    原文链接:http://blog.fens.me/nodejs-mysql-intro/

  3. 20145335郝昊《网络对抗技术》Exp6 信息搜集技术

    20145335郝昊<网络对抗技术>Exp6 信息搜集技术 实验内容 本次实验的目标是掌握信息搜集的最基础技能.具体有(1)各种搜索技巧的应用(2)DNS IP注册信息的查询 (3)基本的 ...

  4. [noip模拟题]科技节 - 搜索 - 位运算优化

    [问题描述] 一年一度的科技节即将到来.同学们报名各项活动的名单交到了方克顺校长那,结果校长一看皱了眉头:这帮学生热情竟然如此高涨,每个人都报那么多活动,还要不要认真学习了?!这样不行!……于是,校长 ...

  5. Python 开发环境搭建

    Python分别有两个大的版本,分别是2和3 下载地址:Python-3.6.2   Python-2.7.13 现在安装路径:D:\Program Files\Python 安装完成以后要安装 pi ...

  6. newcode wyh的吃鸡(优势队列+BFS)题解

    思路: 要用优势队列,因为有的+2,有的+1,所以队列中的步长是不单调的,所以找到一个答案但不一定最小,所以用优势队列把小的放在队首. 要记录状态,所以开了三维,题目和昨天做的那道小明差不多 vis开 ...

  7. TeeChart取消3D

    tChart1.Aspect.View3D = false;//此属性默认是true 3d的效果 2d平面的效果 题外话,在使用控件的时候,需要注意: 在TChart控件上增加Series,   se ...

  8. 入门dp总结

    写这篇博文主要是为了归纳总结一下dp的有关问题(不定期更新,暑假应该会更的快一些) 会大概讲一下思路,不会事无巨细地讲 另一篇是平时做过的一些dp题,这篇博客里面提到的题都有题解放在那边:https: ...

  9. eclipse 在线安装反编译插件

    打开eclipse help>install New Software…..>add Name:jd-eclipse_update_site Location:http://jd.beno ...

  10. java中集合格式及json格式的特点和转换

    作者原创:转载请注明出处 今天在写代码,遇到一个难点,由于要调用webservice接口,返回的为一个list集合内容,从webservice调用接口返回的为一个string的io流, 在调用接口的地 ...