




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章BLOB数据数据操作和水晶报表 2 9 1BLOB数据 如图片 处理 1 预备知识二进制大型对象 BinaryLargeObject BLOB 是指任何需要存入数据库的随机大块字节流数据 例如图形或声音文件 对于BLOB数据有两种方式存储1 文件方式 将BLOB存储在文件中 数据库中保存BLOB数据的文件路径 通过文件操作 进行图像处理2 字段方式 把图形作为数据库的一个字段值存放在数据库 用数据流方式进行图像读取操作 3 9 1 1文件方式 以学生照片存储为例 每张照片是一个文件 student表中photo字类型varchar 256 保存照片文件路径步骤 1 将照片文件存到指定文件 并在表中保存文件路径1 显示照片FileInfofile 声明一个文件对象 PictureBox控件和OpenFileDialog对话框 找到照片并显示 OpenFileDialogdlg newOpenFileDialog dlg Filter png文件 png jpg文件 jpg jpeg文件 jpeg gif文件 gif bmp文件 bmp if dlg ShowDialog DialogResult OK picphoto Image Image FromFile dlg FileName file newFileInfo dlg FileName 给文件对象赋值 4 保存照片 文件保存到程序启动路径 更新表stringsql string Format updatestudentsetphoto 0 wherestudent id 1 file FullName ds Tables student Rows bs Position student id ToString SqlCommandcmd newSqlCommand sql DBHelper connection DBHelper connection Open inti cmd ExecuteNonQuery DBHelper connection Close if i 1 更新成功 复制图片文件file CopyTo Application StartupPath ds Tables student Rows bs Position student id ToString file Extension ds Tables student Rows bs Position photo file FullName 5 2 读取数据表中指定记录的照片 读取数据表中当前记录photo字段的路径值 PictureBox将指定路径中的图片文件读出 if ds Tables student Rows bs Position photo ToString Trim string Empty pictureBox1 Image Image FromFile ds Tables student Rows bs Position photo ToString elsepictureBox1 Image null 6 9 1 2字段方式 在PictureBox控件显示Image对象时 有两种方法 PictureBox控件的DataBinding的Text直接绑定字段 2 未直接绑定到字段方法 使用Stream类进行操作 说明 Stream是数据流 包含在System IO大类中 FileStream是用于文件操作的Stream MemoryStream在内存封装BLOB数据 这样就能直接访问这些封装的数据 7 BLOB数据处理方法1 1 数据绑定 在控件的属性窗口 设置pictureBox的DataBindings属性中的Image属性为BindingSource对象表中某个字段 2 显示图片 移动记录时自动会显示 3 输入或改变图片 1 添加openFileDialog1对象 2 代码如下 if openFileDialog1 ShowDialog DialogResult OK 相片PictureBox1 Image Image FromFile openFileDialog1 FileName oleDbDataAdapter1 Update dataSet11 学籍表 8 BLOB数据处理方法2 Stream通过一个字节类型的数组执行对文件的读写操作 使用Read或Write方法时 需要指定字节起始位置和最多处理的字节数FileStream使用格式 FileStream 文件路径 FileMode 模式 FileAccess 操作 模式为 Open Create操作为 Read Write 9 图形数据写入数据库步骤 1 用FileStream对象读模式打开图形文件FileStream文件对象 NewFileStream 图形文件名 FileMode Open FileAccess Read 2 定义字节类型的数组 大小为文件长度 Byte 数组 newByte 文件对象 Length 3 读文件到数组文件对象 Read 数组 0 int 文件对象 Length 文件对象 Close 4 写入到数据集数据集 Tables 数据表 Rows 记录号 图形字段名 数组 5 更新数据库 10 例 将一图形文件写入当前记录的照片字段 窗体中添加OpenFileDialog1和PictureBox1控件 导入名称空间 usingSystem IO 输入图片代码如下 If OpenFileDialog1 ShowDialog DialogResult OK PictureBox1 Image image FromFile OpenFileDialog1 FileName FileStreamime NewFileStream OpenFileDialog1 FileName FileMode Open FileAccess Read Byte b newByte ime Length ime Read b 0 int ime Length ime Close Dataset11 Tables student Rows this bindingSource Position photo b 11 从数据集读取图形数据步骤 1 将记录内的图形读到字节型数组格式 byte 数组名 byte 数据集 tables 表名 rows 记录号 图型字段名 2 将数组内容传送到Memorystream格式 System Io Memorystream内存流实例 newSystem Io Memorystream 数组名 3 用System Drawing Image的Fromstream方法将memorystream加载到控件的图形组件属性内Picturebox1 Image System Drawing Image Fromstream 内存流实例 12 显示当前记录的照片字段 1 导入名称空间 usingSystem IO 2 显示的代码如下 byte ara dataset11 Tables student Rows this bindingSource Position photo MemoryStreammem newMemoryStream ara picturebox1 Image Image FromStream mem 13 9 1水晶报表 数据库程序开发中 大都需要报表设计 NET提供CrystalReports组件使创建和开发复杂报表变得非常简单 本节主要介绍CrystalReports在C 中的使用 14 拉模型 在拉模型中 驱动程序将连接到数据库并根据需要将数据 拉 进来 使用这种模型时 与数据库的连接和为了获取数据而执行的SQL命令都同时由CrystalReports本身处理 不需要开发人员编写代码 如果在运行时无须编写任何特殊代码 则使用拉模型 图10 25拉模型 15 推模型 推模型需要开发人员编写代码以连接到数据库 执行SQL命令以创建与报表中的字段匹配的记录集或数据集 并且将该对象传递给报表 该方法使您可以将连接共享置入应用程序中 并在CrystalReports收到数据之前先将数据筛选出来 图10 26推模型 16 报表设计 CrystalReportsDesigner是报表的设计工具 可以在CrystalReportsDesigner中创建报表 当向项目中添加CrystalReports组件或双击CrystalReports组件时 CrystalReportsDesigner将自动启动 在CrystalReportDesigner中 首先选择您的报表将要引用的数据源 在一个报表中可使用一个以上的数据源 接下来 选择要在报表中使用的数据库表 CrystalReports可自动链接这些表 或者您可以指定链接这些表的方式 将数据库表链接以使来自一个数据库的记录与来自另一个数据库的记录相匹配 17 9 1 1创建简单报表 可以在C 中创建Windows应用程序的报表和Web应用程序的报表 并分别使用Windows窗体查看器和WEB窗体查看器查看 下面我们仍以JWGL数据库作为数据源 1 创建报表2 在Windows应用程序中承载报表 18 一 创建报表 1 项目菜单 添加新项 Crystal报表 输入报表文件名2 使用报表向导选择新建连接 OLEDB ADO 点击 号 选择 MicrosoftOLEDBProviderforSQLServer 建连接 3 添加报表中用的表Table1 下一步 添加报表中显示的字段 下一步 分组 可以不分组 指定筛选记录条件 可不做 4 选择报表样式 19 二 在Windows应用程序中承载报表 在Windows应用程序中承载报表包括下列步骤 1 向窗体添加一个CrystalReportViewer控件 2 设置CrystalReportViewer控件控件的 Dock 属性为 fill ReportSource 属性为 report1 rpt 若没分组 则设置DisplayView1Group属性为false 20 9 1 2报表设计设计器 CrystalReportDesigner使用类似于VisualStudio NET的拖放方式 即将一个报表对象拖动到设计器 如数据库字段或文本对象 上 然后使用 属性 窗口或快捷菜单格式化该对象 CrystalReportDesigner分为若干个报表节 如报表页眉 页脚和详细信息 可将报表对象拖动到某个报表节上 并根据需要进行格式化 其中包括 数据库字段 公式字段 参数字段 组名字段 运行总计字段 摘要字段 图表 子报表等 21 9 3导出excel文件 1 项目菜单 添加引用 选择COM选项卡 选择MicrosftExcelObjectLibrary9 0 9为版本号 不同版本的Office 生成的PIA的版本也不同 2 导入名称空间usingExcel usingSystem Reflection 反射名称空间 22 3 编写将表格控件中数据导出excel的代码 privatevoidbutton6 Click objectsender EventArgse Excel Applicationmyexcel newExcel Application 创建Excel对象myexcel Application Workbooks Add true 创建一个工作薄myexcel Visible true 使Excel可视intcolumns dataGridView1 Columns Count 获得列数introws dataGridView1 Rows Count 获得行数for intj 0 j columns j myexcel Cells 1 j 1 dataGridView1 Columns j HeaderText 将dataGridView1的列名做为excel表格的第一行for inti 1 i rows i for intj 0 j columns j myexcel Cells i 1 j 1 dataGridView1 j i 1 Value 导出dataGridView1的每个单元格给excel表格 23 9 4合并项目 1 在解决方案资源管理器中 右击解决方案名 添加 现有项目 2 在解决方案资源管理器中 右击项目 设置启动项目3 在启
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年度安全生产培训方案课件
- 子夜吴太爷进城课件
- 婴儿餐椅安全知识培训课件
- 工业激光安全培训内容课件
- 年底安全培训评价语课件
- 年前安全培训会议课件
- 2024年湖南株洲消防招聘考试真题
- 工业循环冷却水课件
- 威尼斯商人课件
- 姚长子墓志铭课件
- 《三角形的面积》教学设计方案
- GB/T 14667.1-1993粉末冶金铁基结构材料第一部分烧结铁、烧结碳钢、烧结铜钢、烧结铜钼钢
- GA/T 1788.1-2021公安视频图像信息系统安全技术要求第1部分:通用要求
- FZ/T 60029-2021毛毯脱毛测试方法
- 质量月知识竞赛题库
- 状态-特质焦虑问卷STAI
- hsp运营高感训练家长手册
- 中药鉴定学习题集全
- 罐车司机培训试题含答案
- 110KV线路断路器控制回路
- 行业资料3东广场地热井招标文件
评论
0/150
提交评论