如何打开数据库中流文件

honkerhero 2007-10-21 11:39:29
现在的问题是,当我把一个文件选中后,该文件会以一个二进制流的方式写进数据库表的一个字段中(SQL2005),在显示的时候,我会用一个TREELIST来显示这些文件,当用户双击该文件名时,我要从数据库中读取流,然后以相应的程序打开,文件类型不确定。
例:用户选中第一个文件,aaa.doc,上传到数据库,每二个文件bbb.xls,第三个文件ccc.pdf,则在显示的时候如下:
aaa.doc
bbb.xls
ccc.pdf
当用户双击其中一个时,以流的文件从数据库中读出来,再以相应的程序打开
例,aaa.doc以WORD文件打开,bbb.xls以EXCEL文件打开,ccc.pdf以用户机器上所安装的能读取PDF文件的程序打开

解决方案
1、不用存临时文件的优先考虑,因为临时文件的删除时间不确定
2、使用临时文件和system.dia...process.start()的就不用说了,有其它更好的办法请留言
3、我这是C/S程序,B/S类的解决方案只作为参考,对解决问题帮助不大者不另外赠分

各位有什么好意见啊。帮助解决问题者,别赠分100,如果解决方案太棒,可赠200
...全文
760 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
honkerhero 2007-10-29
  • 打赏
  • 举报
回复
找到了,大家把分均分了吧,实在不是我想要的
honkerhero 2007-10-23
  • 打赏
  • 举报
回复
楼上的,我知道你所说的一切,我现在不知道的是如何处理这个流,它会自动被相应的程序打开
B/S中,IE会自动处理这些东西
fcuandy 2007-10-21
  • 打赏
  • 举报
回复
记得去年有人问过, 我搜了半天贴子在csdn上找不到了.
在google找到了.



原贴被转录的地址
http://fenlei8.52csdn.net/673952


以下是部分原贴内容

使用stream读出来,再用Response.BinaryWrite即可.

数据库:
truncate table dali --清表
insert dali values(1,0x,'jpg','1') --插记录用于以后写binary数据
exec sp_textcopy '127.0.0.1','sa','xxx','test','dali','MyImage','c:\1.jpg','where ID=1','I' --将 c:\1.jpg以二进制方式写入表dali的id=1的行的myimage字段



显示代码:

SqlConnection cn=new SqlConnection("server=127.0.0.1;uid=sa;pwd=xxx;database=test");
cn.Open();
SqlCommand cmd=new SqlCommand("select myimage from dali",cn);


int bufferSize = 100;
byte[] outbyte = new byte[bufferSize];
long retval;
long startIndex = 0;


SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SequentialAccess);

while (dr.Read())
{


startIndex = 0;
retval = dr.GetBytes(0, startIndex, outbyte, 0, bufferSize);
while (retval == bufferSize)
{

Response.BinaryWrite(outbyte);
startIndex+= bufferSize;
retval = dr.GetBytes(0, startIndex, outbyte, 0, bufferSize);
}

Response.BinaryWrite(outbyte);
}
dr.Close();
cn.Close();

我清表插图片是为了在页面上看到输出效果.
你插pdf,doc当然都可以,不过在页面输出时将生成二进制文件流,输出将会是乱码,你需要输出文件头信息,我懒得查pdf和doc在html声明中的具体写法,所以只写进了jpg的数据.因为ie是直接支持jpg的显示的.
16进制是显示给你看.计算机中以二进制存储这是常识不用我说了吧.
我查了一下.要声明输出 doc 的话,在 我给你的代码 while(dr.Read())上一行加上两句即可:

Response.ContentType="application/vnd.ms-word";
Response.AddHeader("Content-Disposition", "attachment; filename=fdsfsd.doc");

pdf的你自己查吧
fcuandy 2007-10-21
  • 打赏
  • 举报
回复
winform的一样的,只不过不需要 Response.ContentType而已.
Response.ContentType只是输出一些信息给浏览器看的, 因为发到浏览器是二进制代码,浏览器不会去分析代码里的文件头信息

而 一个文件的流数据中, 本身已包含了自己的头信息. 只需要以相应的扩展名保存即可.
比如 exe,dll的pe头, bmp文件的bmp信息等等,本身就包含在自己的流数据中.
vlysses 2007-10-21
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20021126/19/1207615.html
一定对你有帮助
honkerhero 2007-10-21
  • 打赏
  • 举报
回复
这是B/S的,我的是WINFORM程序,估计是要用到进程的
汽车租赁系统 一 课程设计的目的和意义 随着汽车租赁领域的繁荣和飞速发展,租车行业的信息量越来越大,越来越复杂。传 统的管理方式无法适应当前迅速发展的市场,计算机和计算机网络技术迅速发展和普及 ,使用汽车租赁系统可以使得汽车租赁的效率得到很大的提高,同时降低经营成本,提 高利润。 应用对数据库原理的理论学习,通过实践熟练掌握数据库创建、基本操作、程序系统 的建立。并通过数据库原理软件设计实践,巩固在课堂教学中学习的关于数据库原理的 有关知识和数据库系统建立的方法,熟练掌握对于实际问题,为了建立一个关系数据库 信息管理系统,必须得经过需求分析、概念结构设计、逻辑结构设计、物理结构设计、 数据库实施以及数据库运行和维护的一般过程,为毕业设计打下基础。 二、术语定义 E-R图:为理解和表示问题域的信息而建立的数据模型,简称E- R图。具有实体、关系、属性三要素。 数据流图:数据流图是用来描绘软件系统逻辑模型的图形工具,是描绘信息在系统中流 动和处理的情况的。 数据字典:数据字典是对数据流图中出现的所有数据元素、数据流、文件、处理的定义 的集合。 三、数据库的要求 主要功能:本系统包括客户信息管理、车辆信息管理、汽车租赁归还管理、会员类型管 理、会员信息管理、保险公司管理、汽车经销商管理等。具有添加、修改、查询、删除 等功能。方便租赁公司的工作,提高租赁公司的工作质量和工作效率。 性能要求:租借和归还信息必须及时更新,汽车租赁系统的信息必须无差错的存储在主 服务器上。 输出要求:数据完整,详实。 输出要求:简捷,快速,实时、准确。 安全与保密要求:管理员享有对客户信息库及汽车租借信息库和职员信息库的管理与修 改。工作人员只享有对汽车租赁信息库的部分修改(写入与读出)。 完成期限:预计三个月 一 汽车租赁系统需求分析: 系统功能需求: 1)客户可以通过不同的方式(包括电话、前台、网上)预订车辆 1、能够保存客户的预订申请单 2、能够保存客户的历史记录 3、工作人员可以处理申请 4、技术人员可以保存对车辆检修的结构 2)满足以上功能需要以下几个模块: 1、基本数据维护模块。基本数据维护模块提供了使用者录入、修改并维护基本数据的途 径。例如对客户的个人信息、租赁信息、车辆的基本信息等的录入和修改 2、基本业务模块。基本业务模块中,客户可以填写汽车租赁申请表,工作人员负责处理 这些表格。同时,技术人员可以提交每辆车的状态,以便工作人员根据这些资料决定 是否批准客户的请求。 3. 数据库管理模块。在汽车租赁系统中,对客户、工作人员及车辆的信息都要进行统一管 理,车辆的租赁情况也要进行详细的登记。 4. 信息查询模块。信息查询模块主要用于查询相关信息,例如工作人员查询车辆信息和客 户信息等。 如以下层次图所示: 数据字典 1、公司数据字典 "属性名 "存储代 "类型 "长度 "备注 " " "码 " " " " "编号 "Fno "char "20 "汽车租赁公司的编号 " "名称 "Fname "char "20 "汽车租赁公司名称 " "电话 "Ftell "char "20 "汽车租赁公司联系方式 " "地址 "Faddres"char "50 "汽车租赁公司的地址 " " "s " " " " "电子邮箱"Femail "char "50 "汽车租赁公司的电子邮箱 " "传真 "Ffax "char "20 "汽车租赁公司的传真 " "邮编 "Fzip "char "10 "汽车租赁公司的邮编 " 2、汽车数据字典 "属性名 "存储代 "类型"长度 "备注 " " "码 " " " " "编号 "Cno "char"20 "汽车车牌号 " "名称 "Cname "char"20 "汽车品牌名 " "类型 "Ctype "char"20 "汽车所属类型 " "颜色 "Colour "char"20 "汽车颜色 " "使用时间"Ctime "char"20 "汽车从投入使用到现在的时间 " "行驶里程"Cmileag"char"20 "汽车总共行驶的时间 " " "e " " " " "租赁价格"Cprice "long"10 "租赁汽车每小时多少钱 " "逾期价格"Oprice "long"10 "超过该时间每小时多少钱 " "状态 "State "char"10 "在库或不在库 " 3、车辆保险数据字典 "属性名 "存储代 "类型 "长度 "备注 " " "码 " " " " "车险号 "Bno "char "20 "车辆保险类型号码 " "车险名 "Bname "char "20 "车辆保险保单名字 " "所保车号"Cnumber"char "20 "投保车辆的车牌号 " "投保时间"Bdate "date "8 "签订保单的时间 "
。 汽车租赁系统数据库设计 汽车租赁系统 课程设计的目的和意义 随着汽车租赁领域的繁荣和飞速发展,租车行业的信息量越来越大,越来越复杂 。传统的管理方式无法适应当前迅速发展的市场,计算机和计算机网络技术迅速发展和 普及,使用汽车租赁系统可以使得汽车租赁的效率得到很大的提高,同时降低经营成本 ,提高利润。 应用对数据库原理的理论学习,通过实践熟练掌握数据库创建、基本操作、程序 系统的建立。并通过数据库原理软件设计实践,巩固在课堂教学中学习的关于数据库原 理的有关知识和数据库系统建立的方法,熟练掌握对于实际问题,为了建立一个关系数 据库信息管理系统,必须得经过需求分析、概念结构设计、逻辑结构设计、物理结构设 计、数据库实施以及数据库运行和维护的一般过程,为毕业设计打下基础。 二、术语定义 E-R图:为理解和表示问题域的信息而建立的数据模型,简称E- R图。具有实体、关系、属性三要素。 数据流图:数据流图是用来描绘软件系统逻辑模型的图形工具,是描绘信息在系统中流 动和处理的情况的。 数据字典:数据字典是对数据流图中出现的所有数据元素、数据流、文件、处理的定义 的集合。 三、数据库的要求 主要功能:本系统包括客户信息管理、车辆信息管理、汽车租赁归还管理、会员类型管 理、会员信息管理、保险公司管理、汽车经销商管理等。具有添加、修改、查询、删除 等功能。方便租赁公司的工作,提高租赁公司的工作质量和工作效率。 性能要求:租借和归还信息必须及时更新,汽车租赁系统的信息必须无差错的存储在主 服务器上。 输出要求:数据完整,详实。 输出要求:简捷,快速,实时、准确。 安全与保密要求:管理员享有对客户信息库及汽车租借信息库和职员信息库的管理与修 改。工作人员只享有对汽车租赁信息库的部分修改(写入与读出)。 完成期限:预计三个月 汽车租赁系统需求分析: 系统功能需求: 1)客户可以通过不同的方式(包括电话、前台、网上)预订车辆 1、能够保存客户的预订申请单 2、能够保存客户的历史记录 3、工作人员可以处理申请 4、技术人员可以保存对车辆检修的结构 2)满足以上功能需要以下几个模块: 1、基本数据维护模块。基本数据维护模块提供了使用者录入、修改并维护基本数据的途 径。例如对客户的个人信息、租赁信息、车辆的基本信息等的录入和修改 2、基本业务模块。基本业务模块中,客户可以填写汽车租赁申请表,工作人员负责处理 这些表格。同时,技术人员可以提交每辆车的状态,以便工作人员根据这些资料决 定是否批准客户的请求。 数据库管理模块。在汽车租赁系统中,对客户、工作人员及车辆的信息都要进行统一管 理,车辆的租赁情况也要进行详细的登记。 信息查询模块。信息查询模块主要用于查询相关信息,例如工作人员查询车辆信息和客 户信息等。 如以下层次图所示: 数据字典 1、公司数据字典 "属性名 "存储代 "类型 "长度 "备注 " " "码 " " " " "编号 "Fno "char "20 "汽车租赁公司的编号 " "名称 "Fname "char "20 "汽车租赁公司名称 " "电话 "Ftell "char "20 "汽车租赁公司联系方式 " "地址 "Faddres"char "50 "汽车租赁公司的地址 " " "s " " " " "电子邮箱"Femail "char "50 "汽车租赁公司的电子邮箱 " "传真 "Ffax "char "20 "汽车租赁公司的传真 " "邮编 "Fzip "char "10 "汽车租赁公司的邮编 " 2、汽车数据字典 "属性名 "存储代 "类型"长度 "备注 " " "码 " " " " "编号 "Cno "char"20 "汽车车牌号 " "名称 "Cname "char"20 "汽车品牌名 " "类型 "Ctype "char"20 "汽车所属类型 " "颜色 "Colour "char"20 "汽车颜色 " "使用时间"Ctime "char"20 "汽车从投入使用到现在的时间 " "行驶里程"Cmileag"char"20 "汽车总共行驶的时间 " " "e " " " " "租赁价格"Cprice "long"10 "租赁汽车每小时多少钱 " "逾期价格"Oprice "long"10 "超过该时间每小时多少钱 " "状态 "State "char"10 "在库或不在库 " 3、车辆保险数据字典 "属性名 "存储代 "类型 "长度 "备注 " " "码 " " " " "车险号 "Bno "char "20 "车辆保险类型号码 " "车险名 "Bname "char "20 "车辆保险保单名字 " "所保车号"Cnumber"char "20 "投保车辆的车牌号 " "投保时间"Bdate "date "8 "签订保单的时
程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。   程序(港台称之为程式) program(me)或procedure   chéng xù   概念1.:为进行某活动或过程所规定的途径。   概念2.程序是由序列组成的,告诉计算机如何完成一个具体的任务。由于现在的计算机还不能理解人类的自然语言,所以还不能用自然语言编写计算机程序。   指示计算机按解决问题的步骤   实现预期目的而进行操作的一系列语句和指令。一般分为系统程序和应用程序两大类。 计算机中的程序在港澳台地区称为程式。程序就是为使电子计算机执行一个或多个操作,或执行某一任务,按序设计的计算机指令的集合。由程序计数器(Program Counter)控制。程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。是用汇编语言、高级语言等开发编制出来的可以运行的文件,在计算机中称可执行文件(后缀名一般为.exe)。我们玩的游戏一般都是应用程序(但现在后缀名为.swf的Flash影片类的游戏也比较流行)   常见的编程语言   * .NET   * ActionScript   * APL、A+和J   * Ada   * 汇编语言   * AWK   * Basic   o QBasic   o Visual Basic   * VBScript   * Brainfuck   * C、C++   o Objective-C   * Clipper   * COBOL   * dBase   * PASCAL、Delphi   * Forth   * Fortran   * FoxPro   * F#   * Fava   * IDL   * Java   * JavaScript   * J#   * LISP   * Lua   * LOGO   * Modula   * Nuva   * Perl   * PHP   * PL/I   * Prolog   * Python   * R   * Ruby   * Scheme   * Smalltalk   * Tcl/Tk   * Visual FoxPro   怎样成为一名程序员   第一阶段:掌握一种编程语言   学习内容:学习任意一种主流的编程语言。例如C++语言。   学习目标:熟练掌握一种语言的语法和基本的编程技巧。   学习时间:3个月左右   注意事项:编程语言和编程工具是两回事情,编程语言是指C++、Basic、Object Pascal等。程序设计语言,它们是像汉语、英语一样的抽象的语法规则,编程工具是指 Visual C++ 6.0、Visual Basic 6.0、Delphi 7.0等包括了源代码编辑器、程序编译器 ,在内的集成化、可视化的软件开发工具。C++源程序可以在Visual C++ 6.0里编写,也可以在记事本里编写,而同一个C++源程序可以用Visual C++ 6.0编译、执行,也可以用C++ Builder 5.0编译、执行,所以: C++ 不等于 Visual C++ 6.0 。   第二阶段:掌握一种编程工具   学习内容:学习任意一种主流的编程工具。注意编程工具要和第一阶段学习的编程语   言一致,例如你学习的编程语言是C++,那么编程工具要选Visual C++ 6.0、C++ Builder 5.0。   学习目标:熟练掌握这种编程工具基本用法,例如:菜单、组件、程序跟踪调试、编写Windows程序等。   学习时间:3个月左右   注意事项:这个阶段侧重编程工具的使用,同时进一步熟习编程语言,最后达到能熟练编写各种基本的Windows程序。   第三阶段:掌握“算法与数据结构”这门课程   学习内容:算法与数据结构,推荐许卓群的《数据结构》,高等教育出版社出版。   学习目标:熟练掌握各种常用的算法与数据结构   学习时间:4个月左右   注意事项:这是一门不可或缺的软件开发课程,曾经有一本经典计算机专业书籍叫做《数据结构+算法=程序》,这说明了数据结构和算法的重要性。它能帮我们建立良好的程序分析与设计能力。   第四阶段:实现一个模拟的小型软件项目   学习内容:软件项目的开发过程   学习目标:掌握软件项目的基本开发过程和方法   学习时间:4个月左右   注意事项:自己完成一个模拟的小型软件项目,强烈推荐做一个MIS(管理信息系统)软件,参考用书推荐:   1、“中小型信息管理系统开发实例系列丛书”,人民邮电出版社,它的例子详实有效。   2、 以它为基础再加以扩展,就可以做出实用的MIS软件来。   3、此丛书包括多种开发工具,大家可以选择适合自己的:《VISUAL FOXPRO6.0 数据库系统开发实例导航》   4、《JAVA数据库系统开发实例导航》 《VISUAL BASIC数据库系统开发实例导航》。   5、《VISUAL C++6.0数据库系统开发实例导航》 《ASP.NET数据库管理系统开发实例导航》   6、《DELPHI数据库系统开发实例导航》 《POWERBUILDER 8.0数据库系统开发实例导航》。 [编辑本段]社会上办事程序的定义 工作程序|按程序进行。   程序,是现在最吃香的提法。   [1]任何单位任何事情,首先强调的就是程序,因为管理界有句名言:细节决定成败。程序就是整治细节最好的工具。于是,现在我们的所有工作,无时无处不在强调程序。 因为有了规范的办事程序,现在我们这些平民百姓到政府机关办事比原来容易了许多,最起码知道办什么事该找哪个部门,知道办这个事应该用多长时间了。政府公开办事程序,也拉近了和人民群众的关系。好,这是好得很的事。 好像是为了印证事物都是一分为二的道理一样,在赞颂程序的同时,我们也看到了程序冷酷的另一面。南宁见义勇为的英雄鲍光蛇在医院冷酷的程序中流尽了最后一滴血,公路收费站的值班人员因救护车交不出十元钱的过路费而坚决不放行救护车,终于使急需救助的患者丧命,……等等的例子,都为我们强调或者说奉为神圣规则的程序优先勾画出了它的原形。   程序,是管理方式的一种,是能够发挥出协调高效作用的工具,在我们的社会主义建设事业或者说现代化建设中,应该充分重视它的作用,应该不断地将我们的工作从无序整改到有序。   可是,当我们只关注形式而不关注实质的时候,有些事情就发展到了它的反面。程序不是医治百病的灵丹妙药,在它走向反面的时候,它是使那些官僚主义者和视劳苦大众利益如不见的人们推脱掉自己应当承担的责任的最好的挡箭牌。因为越是严密完善的程序,按部就班执行起来越是要付出时间的代价,当时间被浪费了时候,因此引发的其他损失是不应该由模范执行了程序的人来负责的。 [编辑本段]程序的运行   为了一个程序运行,计算机加载程序代码,可能还要加载数据,从而初始化成一个开始状态,然后调用某种启动机制。在最低层上,这些是由一个引导序列开始的。   在大多数计算机中,操作系统例如视窗等,加载并且执行很多程序。在这种情况下,一个计算机程序是指一个单独的可执行的映射,而不是当前在这个计算机上运行的全部程序。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧