goldpower
دوشنبه 03 فروردین 1394, 23:45 عصر
سلام
چه طور باید تصویر رو در اکسس ذخیره و بازیابی کرد؟
goldpower
سه شنبه 04 فروردین 1394, 11:25 صبح
سلام
چه طور باید تصویر رو در اکسس ذخیره و بازیابی کرد؟
راه حل :
 
Imports System.Data.OleDb
Imports System.IO
Public Class Form1
    Dim ConnString As String = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & Application.StartupPath & "\ImageDatabase.mdb"
    Dim CONNECTION As New OleDbConnection(ConnString)
    Dim DS As DataSet
    '
    'Load
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call ReloadImages()
    End Sub
    '
    'Browse
    Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
        With OpenFileDialog1
            .InitialDirectory = "C:\"
            .Filter = "Bitmaps (*.bmp)|*.bmp|GIFs (*.gif)|*.gif|JPEGs (*.jpg)|*.jpg|All Image File (*.jpg,*.bmp,*.gif)|*.jpg;*.bmp;*.gif"
            .FilterIndex = 2
        End With
        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            With PictureBox1
                .Image = Image.FromFile(Me.OpenFileDialog1.FileName)
                .SizeMode = PictureBoxSizeMode.AutoSize
            End With
        End If
        Me.Label1.Text = Me.OpenFileDialog1.FileName.ToString
    End Sub
    '
    'Save
    Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
        If Me.Label1.Text.Trim = "" Then
            MsgBox("Please browse a picture to save!", MsgBoxStyle.Information, "No Picture to Save")
            Exit Sub
        End If
        Dim ms As New MemoryStream
        Me.PictureBox1.Image.Save(ms, Me.PictureBox1.Image.RawFormat)
        Dim arrayImage() As Byte = ms.GetBuffer
        ms.Close() ' Closes the Memory Stream
        Dim nStr As String = Me.Label1.Text.Substring(Me.Label1.Text.LastIndexO f("\") + 1)
        Dim strQuery As String = "INSERT INTO Pic(Name, Picture) VALUES(@Name, @Picture)"
        Dim objcommand As New OleDbCommand(strQuery, CONNECTION)
        With objcommand
            .Parameters.Add(New OleDbParameter("@Name", SqlDbType.NVarChar, 50)).Value = nStr
            .Parameters.Add(New OleDbParameter("@Picture", SqlDbType.Image)).Value = arrayImage
        End With
        CONNECTION.Open()
        objcommand.ExecuteNonQuery()
        MessageBox.Show("Image Saved Into the DataBase", "Save Successfully", MessageBoxButtons.OK, MessageBoxIcon.Information)
        CONNECTION.Close()
        ReloadImages()
        'Find and Select the Image Last Save.
        Dim index As Integer = Me.ListBox1.FindStringExact(nStr)
        Me.ListBox1.TopIndex = index
        ListBox1.SelectedIndex = index
    End Sub
    '
    'Delete
    Private Sub btndelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndelete.Click
        Dim intID As Integer
        If Me.ListBox1.SelectedIndex > -1 Then
            intID = Me.DS.Tables(0).Rows(Me.ListBox1.SelectedIndex).It em("ID")
        Else
            'nothing to delete
            Exit Sub
        End If
        Dim strQuery As String = "DELETE FROM Pic WHERE ID=@ID"
        Dim objcommand As New OleDbCommand(strQuery, CONNECTION)
        With objcommand
            .Parameters.Add(New OleDbParameter("@ID", SqlDbType.Int)).Value = intID
        End With
        CONNECTION.Open()
        objcommand.ExecuteNonQuery()
        MessageBox.Show("Delete Image From the DataBase", "Delete Successfully", MessageBoxButtons.OK, MessageBoxIcon.Information)
        CONNECTION.Close()
        ReloadImages()
    End Sub
    '
    'Export Picture
    Private Sub ExportPictureToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExportPictureToolStripMenuItem.Click
        If Me.ListBox1.SelectedIndex > -1 Then
            Dim strPic As String = DS.Tables(0).Rows(Me.ListBox1.SelectedIndex).Item("Name")
            Dim strExt As String = strPic.Substring(strPic.LastIndexOf(".") + 1)
            Dim strFileName As String = strPic.Remove(strPic.LastIndexOf("."))
            Dim Index As String
            Select Case strExt
                Case "bmp"
                    Index = 1
                Case "gif"
                    Index = 2
                Case "jpg"
                    Index = 3
                Case Else
                    Index = 0
            End Select
            With SaveFileDialog1
                .Filter = "Bitmaps (*.bmp)|*.bmp|GIFs (*.gif)|*.gif|JPEGs (*.jpg)|*.jpg"
                .FilterIndex = Index
            End With
            Me.SaveFileDialog1.FileName = strFileName
            If Me.SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
                Me.PictureBox1.Image.Save(Me.SaveFileDialog1.FileN ame)
            End If
        End If
    End Sub
    '
    '
    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
        If Me.Label1.Text.Trim <> "" Then
            If IO.File.Exists(Me.Label1.Text) = True Then
                Me.PictureBox1.Image = Image.FromFile(Me.Label1.Text)
            Else
                MsgBox("The picture file does not exist!", MsgBoxStyle.Exclamation, "File does not exist")
            End If
        End If
    End Sub
    '
    '
    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        If Me.ListBox1.SelectedIndex > -1 Then
            Dim arrayImage() As Byte = CType(Me.DS.Tables(0).Rows(Me.ListBox1.SelectedInd ex).Item("Picture"), Byte())
            Dim ms As New MemoryStream(arrayImage)
            With Me.PictureBox1
                .Image = Image.FromStream(ms)
                .SizeMode = PictureBoxSizeMode.AutoSize
            End With
        End If
        
    End Sub
    '
    '
    Private Sub rdoNormal_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.PictureBox1.SizeMode = PictureBoxSizeMode.AutoSize
    End Sub
#Region "Helper"
    Private Sub ReloadImages()
        Try
            Dim cmd As New OleDbCommand("SELECT * FROM Pic ORDER BY Name", CONNECTION)
            Dim DA As New OleDbDataAdapter(cmd)
            DS = New DataSet
            DA.Fill(DS)
            Me.ListBox1.DataSource = DS.Tables(0)
            Me.ListBox1.DisplayMember = "Name"
            Me.ListBox1.ValueMember = "ID"
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
       
    End Sub
#End Region
    
End Class
runsysco
شنبه 07 شهریور 1394, 18:32 عصر
با درود
عالی بود حرف نداشت من خیلی جاها رو گشتم اما این از همه بهتر کار میکنه
فرید نجفلو
یک شنبه 08 شهریور 1394, 22:09 عصر
سلام
سورس:ذخیره و بازیابی فایل در SQL Server و Access با درصد پیشرفت(دانلود کنید!) (http://barnamenevis.org/showthread.php?333391-%D8%B3%D9%88%D8%B1%D8%B3-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D9%88-%D8%A8%D8%A7%D8%B2%DB%8C%D8%A7%D8%A8%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-SQL-Server-%D9%88-Access-%D8%A8%D8%A7-%D8%AF%D8%B1%D8%B5%D8%AF-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA(%D8%AF%D8%A7% D9%86%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D8%AF!))
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.