PDA

View Full Version : ذخیره عکس در دیتا بیس



sarina
جمعه 04 مهر 1382, 16:56 عصر
چگونه میتوانم ازطریقvb یک فیلد عکس را وارد database بنمایم (access)
با تشکر

h_rezaei
جمعه 04 مهر 1382, 17:22 عصر
در نمونه کد زیر فرض شده:
دارای یک دیتابیس در ACCESS بنام ImageDB هستیم که یک جدول با نام tblImage دارد و شامل یک فیلد از نوع OLE Object بنام fldImage است.
در برنامه VB یک فرم شامل Component های زیر داریم:

PicImage : Picture Box
CmdSave: Command Button ‘ Saves the picture of PicImage in Database
CmdLoad : Command Button ‘ Loads the content of fldImage in picImage


اگر از( Microsoft ActibeX Data Object Library 2.5 (ADO 2.5 به بالا استفاده میکنید، از این روش استفاده کنید


Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim mstream As New ADODB.Stream

()Private Sub Form_Load
& conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path
"ImageDB.mdb;Persist Security Info=False\"
rs.Open "select * from TblImage", conn, adOpenDynamic, adLockOptimistic
mstream.Type = adTypeBinary
mstream.Open
End Sub

()Private Sub cmdSave_Click
mstream.LoadFromFile (ImageFileName) ‘ ImageFileName is the path of PicImage Picture
rs.AddNew
rs.Fields("Image").Value = mstream.Read
rs.Update
End Sub

()Sub cmdLoad_Click
mstream.Write rs.Fields("Image").Value
mstream.SaveToFile App.Path & "\1.gif", adSaveCreateOverWrite
(" PicImage.Picture = LoadPicture(App.Path & "\1.gif
End Sub

Voldemort
شنبه 05 مهر 1382, 10:37 صبح
دوست عزیز در این زمینه در سایت برنامه نویس بحثهای زیادی شده است که می توانید به علاوه بر جوابی که دوست دیگرمان داده اند به آنها هم مراجعه کنید. در ضمن در وبلاگ زیر هم مقاله اب در این زمینه وجود دارد:
http://vblog.persianblog.com

sh
شنبه 05 مهر 1382, 16:42 عصر
سلام بچه ها

اینم یه مثال برای ذخیره عکس در دیتا بیس اکسس گه البته می تونین در یه ماژول قرار بدین و استفاده کنید


Imports System
Imports System.IO
Imports System.Data

Public Class SaveImage

Shared Sub main()

'Delaclare a file stream object
Dim o As System.IO.FileStream
'Declare a stream reader object
Dim r As StreamReader

Dim jpgFile As String
Console.Write("Enter a Valid .JPG file path")
jpgFile = Console.ReadLine
If Dir(jpgFile) = "" Then
Console.Write("Invalid File Path")
Exit Sub
End If

'Open the file
o = New FileStream(jpgFile, FileMode.Open, FileAccess.Read, FileShare.Read)

'Read the output in a stream reader
r = New StreamReader(o)

Try
'Declare an Byte array to save the content of the file to be saved
Dim FileByteArray(o.Length - 1) As Byte
o.Read(FileByteArray, 0, o.Length)

'Open the DataBase Connection, Please map the datasource name to match the Database path
Dim Con As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=DbImages.mdb")

Dim Sql As String = "INSERT INTO DbImages (Pic,FileSize) VALUES (?,?)"
'Declare a OleDbCommand Object
Dim CmdObj As New System.Data.OleDb.OleDbCommand(Sql, Con)

'Add the parameters
CmdObj.Parameters.Add("@Pic", System.Data.OleDb.OleDbType.Binary, o.Length).Value = FileByteArray
CmdObj.Parameters.Add("@FileSize", System.Data.OleDb.OleDbType.VarChar, 100).Value = o.Length

Con.Open()
CmdObj.ExecuteNonQuery()
Con.Close()
Catch ex As Exception
Console.Write(ex.ToString)
End Try

End Sub
End Class

-----------------------------------------
شهریار