ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:7.02MB ,
资源ID:2787635      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2787635.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(跟我学VS#语言编程技术——操作数据库中的二进制字段的应用示例.doc)为本站会员(dzzj200808)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

跟我学VS#语言编程技术——操作数据库中的二进制字段的应用示例.doc

1、杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究, 1/17 页11.1 跟我学 VS#语言编程技术操作数据库中的二进制字段的应用示例所谓二进制字段,是指任何二进制类型的文件,可以保存在数据库的字段中,如图像文件或者 Word 文档文件等。 对二进制字段,在 Access 数据库中一般设计为 OLE 对象,而在SQLServer 中则设计为 image 类型。下面通过两个应用的实例来说明实现的方法。1.1.1 将 Word 文档文件存储到数据库表中的应用示例数据库字段的数据为 Word 文档文件由于 Word 文档通常比较大,所以在对数据库操作时并不希望

2、将所有的记录全部调入内存,而是希望当用户浏览到所需要的 Word 文档所在的记录时,再将它所对应的 Word 文档字段调入内存比较合适。所以构造两个连接,第一个是除去大二进制字段的数据集,主要用于显示基础信息(作为浏览内容),第二个则只调入需要的那条记录,再该记录中包括需要处理的 Word 文档大二进制字段。1、设计包含有 Word 文档的数据表在 DataBase 数据库文件中新增一个数据表,包含 Word 文档的数据库表结构如下,表名为 WordBinData:ID int 4 主键,自动增加FileName nvarchar 20WordFile image 16杨教授工作室 精心创作的

3、优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究, 2/17 页22、设计一个 C#的应用程序项目其界面如下:一个 DataGrid 控件和五个按钮。3、加入两个 SqlDataAdapter 控件,都连接到 Word 表但 sqlDataAdapter1 控件连接到 Word 表中的 ID 和 FileName 字段。目的是只显示基本的数据以快速导航,当查看到指定的记录时再显示详细的数据。杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究, 3/17 页3而 sqlDataAdapter2 控件连接到 Word 表中的 ID 和 File

4、Name、WordFile 字段杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究, 4/17 页4注意:两个连接的表是相同的,所以 DataSet 建立表的时候发生重名;需要将 sqlDataAdapter1的 TableMaping 属性修改表的名字为 WordBinData。而需要利用 sqlDataAdapter2 的杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究, 5/17 页5TableMaping 属性来设置修改表的名字为 WordBinDataAll。4、生成数据集选择“数据”菜单中的“生成数据集”

5、子菜单。5、将 DataGrid 的 DataSource 属性设置为 dataSet11.WordBinData 数据表以进行绑定。杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究, 6/17 页66、编程各个按钮的事件private void button1_Click(object sender, System.EventArgs e) /下载数据dataSet11.Clear();sqlDataAdapter1.Fill(dataSet11);private void button2_Click(object sender, System.Eve

6、ntArgs e) /保存为本地文件int RowNum=dataGrid1.CurrentRowIndex; /获取当前行号dataSet11.Tables“WordBinDataAll“.Clear();/当前行完成数据下载sqlDataAdapter2.SelectCommand.CommandText=“select * from WordBinData where ID=“+dataSet11.Tables“WordBinData“.RowsRowNum“ID“.ToString();sqlDataAdapter2.Fill(dataSet11);string saveFileNam

7、e;SaveFileDialog saveDlg=new SaveFileDialog();saveDlg.Filter = “Word 文档|*.Doc“;if (saveDlg.ShowDialog() = DialogResult.OK)trysaveFileName = saveDlg.FileName;/构造一个文件流和一个二进制流,注意添加 using System.IO;FileStream fs;BinaryWriter bw;byte outbyte;outbyte=(byte)dataSet11.Tables“WordBinDataAll“.Rows0“WordFile“;

8、fs = new FileStream(saveFileName, FileMode.OpenOrCreate, FileAccess.Write);bw = new BinaryWriter(fs);/把数组中的 Word 文档的数据保存到文件中bw.Write(outbyte);bw.Close();杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究, 7/17 页7fs.Close();statusBar1.Text = “已经保存“;catchstatusBar1.Text = “保存错误“;private void button3_Click(o

9、bject sender, System.EventArgs e) /修改文件字段int RowNum=dataGrid1.CurrentRowIndex; /把选中行的全部数据调进来sqlDataAdapter2.SelectCommand.CommandText=“select * from WordBinData where ID=“+dataSet11.Tables“WordBinData“.RowsRowNum“ID“.ToString();dataSet11.Tables“WordBinDataAll“.Clear();sqlDataAdapter2.Fill(dataSet11)

10、;string curFileName;OpenFileDialog openDlg=new OpenFileDialog(); /从当地文件系统调入文件内容openDlg.Filter = “Word 文档|*.Doc“;if (openDlg.ShowDialog() = DialogResult.OK)trycurFileName = openDlg.FileName; /获得用户所选择的文件名称/构造一个流对象,文件名是选中的文件FileStream fs = new FileStream(curFileName, FileMode.OpenOrCreate, FileAccess.R

11、ead);byte rawData= new bytefs.Length; /构造一个动态字节数组/读流对象,从 0 开始,长度是 fs 的长度fs.Read(rawData, 0, System.Convert.ToInt32(fs.Length);fs.Close();/把数据写进数据库dataSet11.Tables“WordBinDataAll“.Rows0“WordFile“ = rawData; 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究, 8/17 页8dataSet11.Tables“WordBinDataAll“.Rows0“Fi

12、leName“=dataSet11.Tables“WordBinData“.RowsRowNum“FileName“;sqlDataAdapter2.Update(dataSet11); /提交数据以保存到数据库中statusBar1.Text = “修改正确“;catchstatusBar1.Text = “修改错误“;private void button4_Click(object sender, System.EventArgs e) /提交sqlDataAdapter1.Update(dataSet11);private void button5_Click(object sende

13、r, System.EventArgs e) /删除记录int RowNum=dataGrid1.CurrentRowIndex;dataSet11.Tables“WordBinData“.RowsRowNum.Delete();sqlDataAdapter1.Update(dataSet11);7、执行该程序杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究, 9/17 页9注意:1) 由于开始的时候,数据库表中没有数据;因此,在 FileName 字段中输入信息,然后点击“提交”按钮,将数据真正地写到数据库的数据文件中。2) 然后,再点击“保存 Wor

14、d 文件到数据库”按钮,再通过对话框内实现将 WordBinData 文档保存到数据库中。3) 通过点击“保存为本地文件”按钮以显示出1.1.2 图片字段的处理技术及相关的应用示例1、设计数据库表同样道理,当然也可以处理图形文件问题,假定图片放在 Access 数据库中 HR.MDB,表名 PHOTO,字段如下:ID 自动编号EMPID 文本PHOTO OLE 对象2、设计出一个 C#应用程序项目杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究 , 10/17 页10并构造出 GUI 界面:包含有四个按钮、DataGrid 和 PictureBox、状态

15、条 StatusBar。3、添加 OleDataAdapter 控件,以连接到 ImageDB.MDB 数据库的 PHOTO 表名4、生成数据集并将数据集中的指定表名称的对象与 DataGrid 控制相绑定。杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究 , 13/17 页135、将数据集中的指定表名称的对象与 DataGrid 控制相绑定。6、编程各个按钮的事件响应程序/*ImageConverter 是可用于将 Image 对象从一种数据类型转换为另一种数据类型的类。其名称空间为 System.Drawing*/ImageConverter img

16、= new ImageConverter();Image curImage;杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究 , 14/17 页14int RowNum; /保存当前行号private void Form1_Load(object sender, System.EventArgs e)oleDbDataAdapter1.Fill(dataSet11);RowNum = 0;try /显示当前行的图形curImage = (Image)img.ConvertFrom(dataSet11.Tables0.Rows0“photo“);pictu

17、reBox1.Image = curImage;catchstatusBar1.Text = “无图形数据“;private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)try/行号不同才进行重新显示if (RowNum != dataGrid1.CurrentCell.RowNumber)RowNum = dataGrid1.CurrentCell.RowNumber;curImage = (Image)img.ConvertFrom(dataSet11.Tables0.RowsRowNum“phot

18、o“);pictureBox1.Image = curImage;statusBar1.Text = “显示图形正确 “;catchstatusBar1.Text = “显示图形错误“;private void button1_Click(object sender, System.EventArgs e) /更新数据库中的字段oleDbDataAdapter1.Update(dataSet11);杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究 , 15/17 页15private void button2_Click(object sender, S

19、ystem.EventArgs e) /将图像保存到数据库中string curFileName;OpenFileDialog openDlg=new OpenFileDialog();openDlg.Filter = “jpg 图形文件|*.jpg“;if (openDlg.ShowDialog() = DialogResult.OK)trycurFileName = openDlg.FileName; /获得用户所选择的图像文件名/构造一个流对象,文件名是选中的文件,需要引入 using System.IO;FileStream fs = new FileStream(curFileNam

20、e, FileMode.OpenOrCreate, FileAccess.Read);byte rawData= new bytefs.Length; /构造一个动态字节数组/读流对象,从 0 开始,长度是 fs 的长度fs.Read(rawData, 0, System.Convert.ToInt32(fs.Length); fs.Close();dataSet11.Tables0.RowsRowNum2 = rawData;oleDbDataAdapter1.Update(dataSet11);/显示新的图形curImage =(Image)img.ConvertFrom(dataSet1

21、1.Tables0.RowsRowNum“photo“);pictureBox1.Image = curImage;statusBar1.Text = “完成更新“;catchstatusBar1.Text = “修改错误“;private void button3_Click(object sender, System.EventArgs e) /从数据库中获得图像string saveFileName;杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究 , 16/17 页16SaveFileDialog saveDlg=new SaveFileDial

22、og();saveDlg.Filter = “jpg 图形文件|*.jpg“;if (saveDlg.ShowDialog() = DialogResult.OK)trysaveFileName = saveDlg.FileName;FileStream fs;BinaryWriter bw;byte outbyte;outbyte =(byte)dataSet11.Tables0.RowsRowNum2;fs = new FileStream(saveFileName, FileMode.OpenOrCreate, FileAccess.Write);bw = new BinaryWrite

23、r(fs);bw.Write(outbyte);bw.Close();fs.Close();statusBar1.Text = “已经保存“;catchstatusBar1.Text = “保存错误“;private void button4_Click(object sender, System.EventArgs e) /删除数据库中的某图像dataSet11.Tables0.RowsRowNum.Delete();oleDbDataAdapter1.Update(dataSet11);7、执行该程序杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料杨教授工作室,版权所有,盗版必究 , 17/17 页17可以将磁盘中的某一图像保存到数据库中,也可以将数据库中的某一图像存储到磁盘文件中。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报