下面的代码是能正确从SQL数据库是读出图片的,但是我觉得有两个地方需要改进1 最好修改成不需要写到C盘去,能否直接读到image控件或者pictuer控件中去吗?
2 显示的图自不能控件大小,图片原来是多,就显示为多大,很不美观....Private Sub 读出image字段,测试是OK ()
  Set cn = New ADODB.Connection
  cn.Open "Provider=SQLOLEDB;data Source=.;Initial Catalog=456;User Id=sa;Password=;"
  Set rs = New ADODB.Recordset
  rs.Open "Select * from yuangong where ygname='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic
If rs.EOF = True Then
  MsgBox "没有该员工的记录"
Else
  Set mstream = New ADODB.Stream
  mstream.Type = adTypeBinary
  mstream.Open
  mstream.Write rs.Fields("ygpicuter").Value     '这是要写到C盘去的,能否直接读进Image2或Picture1.吗??
mstream.SaveToFile "c:\publogo.jpg", adSaveCreateOverWrite
 
  Picture1.Picture = LoadPicture("c:\publogo.jpg")  '使用两种方法进行显示'
  Image2.Height = 60       '不起作用,图片原来是多大,就是会显示多大
  Image2.Width = 60

  Image2.Picture = LoadPicture("c:\publogo.jpg")
  Text4.Text = rs("ygname")
  Text5.Text = rs("ygchusheng")
  Label5.Caption = rs("ygname") & "出生日期"
  mstream.Close
  Set mstream = Nothing
End If
rs.Close
cn.CloseEnd Sub

解决方案 »

  1.   

    你Image2.Picture = LoadPicture("c:\publogo.jpg")之后再把存的删掉
    直接读不会,我都是先存储再删掉
      

  2.   

    不知你的意思,是不是在
    Image2.Picture = LoadPicture("c:\publogo.jpg")
    后面再加上一条删除的该图片的语句?? shell dell c:\publogo.jpg  ??如何写????还再问一下,如何让MSHFlexGrid1控件显示SQL中的image字段,并且控制大小....
    我用以下代码:  Set MSHFlexGrid1.DataSource = rs
       '不加以下标题行的话,该 MSHFlexGrid1控件会自动用数据库中的字段名作为标题'
        MSHFlexGrid1.ColWidth(0) = 12 * 17 * 2
        MSHFlexGrid1.ColWidth(1) = 12 * 24 * 2
        MSHFlexGrid1.ColWidth(2) = 12 * 18 * 2
        MSHFlexGrid1.ColWidth(3) = 12 * 25 * 3
        MSHFlexGrid1.ColWidth(4) = 12 * 25 * 4
        MSHFlexGrid1.FixedRows = 1
        MSHFlexGrid1.FixedCols = 1
        MSHFlexGrid1.TextMatrix(0, 0) = "序号"
        MSHFlexGrid1.TextMatrix(0, 1) = "姓名"
        MSHFlexGrid1.TextMatrix(0, 2) = "性别"
        MSHFlexGrid1.TextMatrix(0, 3) = "出生年月"
        MSHFlexGrid1.TextMatrix(0, 4) = "图片"
        For i = 1 To rs.RecordCount
          MSHFlexGrid1.TextMatrix(i, 0) = i
      Next i
     End If
                      显示不了SQL数据库中的"图片" 字段, ,如果能显示的,还要怎么控制图片的大小????    谢谢,请指教...
      

  3.   

    http://download.csdn.net/source/1483930
      

  4.   

    不知你的意思,是不是在
    Image2.Picture = LoadPicture("c:\publogo.jpg")
    后面再加上一条删除的该图片的语句?? shell dell c:\publogo.jpg ??如何写????还再问一下,如何让MSHFlexGrid1控件显示SQL中的image字段,并且控制大小....我用了以下代码:  Set MSHFlexGrid1.DataSource = rs
      '不加以下标题行的话,该 MSHFlexGrid1控件会自动用数据库中的字段名作为标题'
      MSHFlexGrid1.ColWidth(0) = 12 * 17 * 2
      MSHFlexGrid1.ColWidth(1) = 12 * 24 * 2
      MSHFlexGrid1.ColWidth(2) = 12 * 18 * 2
      MSHFlexGrid1.ColWidth(3) = 12 * 25 * 3
      MSHFlexGrid1.ColWidth(4) = 12 * 25 * 4
      MSHFlexGrid1.FixedRows = 1
      MSHFlexGrid1.FixedCols = 1
      MSHFlexGrid1.TextMatrix(0, 0) = "序号"
      MSHFlexGrid1.TextMatrix(0, 1) = "姓名"
      MSHFlexGrid1.TextMatrix(0, 2) = "性别"
      MSHFlexGrid1.TextMatrix(0, 3) = "出生年月"
      MSHFlexGrid1.TextMatrix(0, 4) = "图片"
      For i = 1 To rs.RecordCount
      MSHFlexGrid1.TextMatrix(i, 0) = i
      Next i
     End If
      显示不了SQL数据库中的"图片" 字段, ,如果能显示的,还要怎么控制图片的大小????
      谢谢,请指教...
      

  5.   

    不知你的意思,是不是在
    Image2.Picture = LoadPicture("c:\publogo.jpg")
    后面再加上一条删除的该图片的语句?? shell dell c:\publogo.jpg ??如何写????还再问一下,如何让MSHFlexGrid1控件显示SQL中的image字段,并且控制大小....
    我用以下代码:

      Set MSHFlexGrid1.DataSource = rs
      '不加以下标题行的话,该 MSHFlexGrid1控件会自动用数据库中的字段名作为标题'
      MSHFlexGrid1.ColWidth(0) = 12 * 17 * 2
      MSHFlexGrid1.ColWidth(1) = 12 * 24 * 2
      MSHFlexGrid1.ColWidth(2) = 12 * 18 * 2
      MSHFlexGrid1.ColWidth(3) = 12 * 25 * 3
      MSHFlexGrid1.ColWidth(4) = 12 * 25 * 4
      MSHFlexGrid1.FixedRows = 1
      MSHFlexGrid1.FixedCols = 1
      MSHFlexGrid1.TextMatrix(0, 0) = "序号"
      MSHFlexGrid1.TextMatrix(0, 1) = "姓名"
      MSHFlexGrid1.TextMatrix(0, 2) = "性别"
      MSHFlexGrid1.TextMatrix(0, 3) = "出生年月"
      MSHFlexGrid1.TextMatrix(0, 4) = "图片"
      For i = 1 To rs.RecordCount
      MSHFlexGrid1.TextMatrix(i, 0) = i
      Next i
     End If
      显示不了SQL数据库中的"图片" 字段, ,如果能显示的,还要怎么控制图片的大小????
      谢谢,请指教...
      

  6.   

    不知你的意思,是不是在
    Image2.Picture = LoadPicture("c:\publogo.jpg")
    后面再加上一条删除的该图片的语句?? shell dell c:\publogo.jpg ??如何写????还再问一下,如何让MSHFlexGrid1控件显示SQL中的image字段,并且控制大小....
    我用以下代码:  Set MSHFlexGrid1.DataSource = rs
      '不加以下标题行的话,该 MSHFlexGrid1控件会自动用数据库中的字段名作为标题'
      MSHFlexGrid1.ColWidth(0) = 12 * 17 * 2
      MSHFlexGrid1.ColWidth(1) = 12 * 24 * 2
      MSHFlexGrid1.ColWidth(2) = 12 * 18 * 2
      MSHFlexGrid1.ColWidth(3) = 12 * 25 * 3
      MSHFlexGrid1.ColWidth(4) = 12 * 25 * 4
      MSHFlexGrid1.FixedRows = 1
      MSHFlexGrid1.FixedCols = 1
      MSHFlexGrid1.TextMatrix(0, 0) = "序号"
      MSHFlexGrid1.TextMatrix(0, 1) = "姓名"
      MSHFlexGrid1.TextMatrix(0, 2) = "性别"
      MSHFlexGrid1.TextMatrix(0, 3) = "出生年月"
      MSHFlexGrid1.TextMatrix(0, 4) = "图片"
      For i = 1 To rs.RecordCount
      MSHFlexGrid1.TextMatrix(i, 0) = i
      Next i
     End If
      显示不了SQL数据库中的"图片" 字段, ,如果能显示的,还要怎么控制图片的大小????  谢谢,请指教...