数据库编程-操作数据.ppt

上传人:za****8 文档编号:7259480 上传时间:2020-03-17 格式:PPT 页数:24 大小:478.01KB
返回 下载 相关 举报
数据库编程-操作数据.ppt_第1页
第1页 / 共24页
数据库编程-操作数据.ppt_第2页
第2页 / 共24页
数据库编程-操作数据.ppt_第3页
第3页 / 共24页
点击查看更多>>
资源描述
第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 在启动项目中 添加引用 选择项目选项卡 选择要合并的项目4 在启动项目中导入名称空间 using合并的项目名 24 9 5打包发布 1 文件菜单 新建 项目2 选择其他项目类型 安装和部署 安装向导 输入项目名称 解决方案 选择添入解决方案3 选择一种项目类型 WINDOWS应用程序 4 选择 主输出来自 项目 须为启动项目 5 选择要包括的文件中添加启动项目文件夹 bin debug 启动程序文件6 重新生成解决方案7 右击安装项目名 分别进行生成 安装和卸载 8 将安装项目 bin debug 所有文件复制到U盘或光盘即可在不同电脑上运行了
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!