正文

在VB.NET中如何读取和存储ACESSS数据库中的图片2008-02-20 21:15:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/iamben250/32812.html

分享到:

'首先将数据读入dataset中                         Dim   ImgByt()   As   Byte                     Dim   ImgMS   As   IO.MemoryStream                         ImgByt   =   CType(dataset.Tables("表名").Rows(0).Item("图片字段名"),   Byte())                         ImgMS   =   New   IO.MemoryStream(ImgByt)                         PictureBox1.image   =   Drawing.Image.FromStream(ImgMS)   Try                             Dim   strInsert   As   String                             Dim   myconn   As   OleDb.OleDbConnection                             Dim   mycmd   As   OleDb.OleDbCommand                             myconn   =   New   OleDb.OleDbConnection("Provider=SQLOLEDB;Data   Source=qianzh;"   &   _                                                                                                                                   "Integrated   Security=SSPI;Initial   Catalog=employ")                             myconn.Open()                             strInsert   =   "INSERT   INTO   employees   (employeeid,   eName,   title,deptno)   VALUES   (   '"   &   _                                                     TxtemployeeID.Text   &   "','"   &   TxteName.Text   &   "','"   &   Txttitle.Text   &   "','"   &   Txtdeptno.Text   &   "')"                             mycmd   =   New   OleDb.OleDbCommand(strInsert,   myconn)                                 '直接对数据库进行更新操作                             mycmd.ExecuteNonQuery()                             myconn.Close()                                     Dim   adoConn   As   ADODB.Connection   =   New   ADODB.Connection()                             Dim   mstream   As   ADODB.Stream                             Dim   rs   As   ADODB.Recordset   =   New   ADODB.Recordset()                             adoConn.Open("dsn=myServer;uid=;pwd=;")                             rs.Open("SELECT   *   FROM   employees   where   employeeid='"   &   TxtemployeeID.Text   &   "'",   adoConn,   ADODB.CursorTypeEnum.adOpenKeyset,   ADODB.LockTypeEnum.adLockOptimistic)                             mstream   =   New   ADODB.Stream()                             mstream.Type   =   ADODB.StreamTypeEnum.adTypeBinary                             mstream.Open()                             Dim   path   As   String                             path   =   Txtpath.Text                             mstream.LoadFromFile(path)                             rs.Fields("image").Value   =   mstream.Read                             rs.Update()                             rs.Close()                             adoConn.Close()                                 MessageBox.Show("成功保存!",   "信息框",   _               MessageBoxButtons.OK,   MessageBoxIcon.Exclamation)                         Catch   ex                             MessageBox.Show("添加数据出错"   &   ex.ToString(),   "错误")                     End   Try                     '以下清空显示                     TxtemployeeID.Text   =   ""                     TxteName.Text   =   ""                     Txttitle.Text   =   ""                     Txtdeptno.Text   =   ""                     Txtdescript.Text   =   ""                     Txthiredate.Text   =   ""                     Txtsal.Text   =   ""                     Txttel.Text   =   ""                     Txtaddress.Text   =   ""                     Txtpath.Text   =   ""                     '       清空图片                       Pibox.Image   =   Nothing             End   Sub '打开图片                     Dim   openFileDialog1   As   New   OpenFileDialog()                     openFileDialog1.InitialDirectory   =   "c:\"                     openFileDialog1.Filter   =   "jpg   files   (*.jpg)|*.jpg|gif   files   (*.gif)|*.gif|All   files   (*.*)|*.*"                     openFileDialog1.FilterIndex   =   2                     '存储目录                     openFileDialog1.RestoreDirectory   =   True                         If   openFileDialog1.ShowDialog()   =   DialogResult.OK   Then                             '在文本框中显示图片的路径                             Dim   path   As   String                             path   =   openFileDialog1.FileName                             Txtpath.Text   =   path                             '在pinturebox中显示图片                             Pibox.SizeMode   =   PictureBoxSizeMode.StretchImage                             Pibox.Image   =   Image.FromFile(path)                     End   If Imports   System     Imports   System.IO     Imports   System.Data     '引入数据库操作类命名空间     Imports   System.Data.OleDb     '引入ADO.NET操作命名空间     Imports   Microsoft.VisualBasic             Public   Class   Form1             Inherits   System.Windows.Forms.Form                 '标志是否进行更该             Dim   flag   As   Integer   =   0             Dim   flag1   As   Integer   =   0             Public   flag2   As   Integer   =   0             Dim   eid   As   String             Dim   ADOcmd   As   OleDbDataAdapter             '建立ADODataSetCommand对象                   Dim   ds   As   DataSet   =   New   DataSet()             '建立DataSet对象               Dim   mytable   As   Data.DataTable             '建立表单对象             Dim   myrow   As   Data.DataRow             '建立数据行对象             Dim   nrow   As   Integer             '定义一个整型变量来存放当前行数             Public   Function   OpenDb()   As   Short                     Dim   SQLstr   As   String                     '定义SQL查询字符串                     SQLstr   =   "select   *   from   employees"                     '建立SQL查询语句                     ADOcmd   =   New   OleDbDataAdapter(SQLstr,   "Provider=SQLOLEDB;Data   Source=qianzh;"   &   _                                                                                                                                   "Integrated   Security=SSPI;Initial   Catalog=employ")                     '建立ADODataSetCommand对象                         ADOcmd.Fill(ds,   "employees")                     '取得表单                     mytable   =   ds.Tables.Item(0)                     '取得employees表                     nrow   =   0                     '设置为起始行                     myrow   =   mytable.Rows.Item(nrow)                     '取得第1行数据             End   Function                 Private   Sub   LoadPict()                     Dim   mstream   As   ADODB.Stream                     mstream   =   New   ADODB.Stream()                     mstream.Type   =   ADODB.StreamTypeEnum.adTypeBinary                     mstream.Open()                     '读取图片,并再当前目录存为一个临时文件temp.gif                     mstream.Write(myrow.Item(9))                     mstream.SaveToFile("temp.gif",   ADODB.SaveOptionsEnum.adSaveCreateOverWrite)                     mstream.Close()                     Dim   path   As   String   =   "temp.gif"                     PiBox.SizeMode   =   PictureBoxSizeMode.StretchImage                     PiBox.Image   =   Image.FromFile(path)             End   Sub

阅读(4585) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册