请问 如何在输入数据时把一张图片存到指定目录,并以该条数据的id为文件名(如:11.jpg),再如何在显示该条数据时在image控件中显示该图片?谢谢

解决方案 »

  1.   

    如果你数据库中存路径的话象这样:
        Image1.Picture = LoadPicture("f:\aa.bmp")改成
        Image1.Picture = LoadPicture(rs.fields("字段"))
      

  2.   

    前提是你用ADO找开表工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)
        Dim CN   As New ADODB.Connection                '定义数据库的连接
        Dim Rs   As New ADODB.Recordset    CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\NWIND.MDB;Persist Security Info=False"
        CN.Open    Rs.CursorLocation = adUseClient
        Rs.Open "select * from table", CN, adOpenDynamic, adLockBatchOptimistic
      

  3.   

    这段代码写在什么地方,谢谢。 sorry,我刚学vb,什么都不懂。
      

  4.   

    '将图片写数据库
    Public Sub SubPicToDb(strDB As String, strField As String, sqlCon As String, strFileName As String)
    Dim adoStream As New ADODB.Stream
    Dim strCon As String
    On Error GoTo ErrToDB
    Set pRst = New ADODB.Recordset
    strCon = "select " & strField & " from " & strDB & " where " & sqlCon
    pRst.Open strCon, pConn, adOpenKeyset, adLockOptimisticadoStream.Type = adTypeBinary
    adoStream.Open
    adoStream.LoadFromFile strFileName
    pRst(strField).AppendChunk adoStream.Read
    pRst.UpdatepRst.Close
    adoStream.Close
    Set adoStream = Nothing
    Set pRst = Nothing
    Exit Sub
    ErrToDB:
    MsgBox Err.Description, vbOKOnly + vbExclamation, "提示"
    End Sub'从数据库中提取二进制数据
    Public Sub SubDbToPic(strDB As String, strField As String, sqlCon As String, objPic As Object)
    Dim adoStream As New ADODB.StreamDim strCon As String
    Dim strFileName As String
    Dim TempFileName As String
    On Error GoTo ErrPic
    Set pRst = New ADODB.Recordset
    TempFileName = App.Path & "\TempFile.tmp"
    strCon = "select " & strField & " from " & strDB & " where " & sqlCon
    adoStream.Type = adTypeBinary
    adoStream.Open
    pRst.Open strCon, pConn, adOpenDynamic, adLockPessimistic
    'If pRst.RecordCount > 0 Then
    adoStream.Write pRst(strField).GetChunk(pRst(strField).ActualSize)
    adoStream.SaveToFile TempFileName, IIf(Len(Trim(Dir(TempFileName, vbNormal + vbHidden))) > 0, adSaveCreateOverWrite, adSaveCreateNotExist)
    objPic.Picture = LoadPicture(TempFileName)
    Kill TempFileName
    'End If
    pRst.Close
    adoStream.Close
    Set adoStream = Nothing
    Set pRst = Nothing
    Exit Sub
    ErrPic:
         If pRst.State = adStateOpen Then pRst.Close
         If adoStream.State = adStateOpen Then adoStream.Close
         Set pRst = Nothing
         Set adoStream = Nothing
    End Sub