PDA

View Full Version : نحوه ذخیره عکس در VB.NET



Agha30NA
سه شنبه 23 آذر 1389, 19:54 عصر
نحوه ذخیره عکس در VB.NET
سلام دوستان یک نرم افزار آماده کردم فقط مونده قسمت ذخیره عکس
برای هر فرد نیاز به دریافت عکس دارم .
از بانک access استفاده می کنم.
لطفا راهنمایی کنید چیکار کنم . با سپاس

milad.biroonvand
سه شنبه 23 آذر 1389, 21:37 عصر
نحوه ذخیره عکس در VB.NET
سلام دوستان یک نرم افزار آماده کردم فقط مونده قسمت ذخیره عکس
برای هر فرد نیاز به دریافت عکس دارم .
از بانک access استفاده می کنم.
لطفا راهنمایی کنید چیکار کنم . با سپاس

اول یه فیلد تو دیتابیست اضافه کن که نوعش oledbobject باشه .

بعد باید با کد های زیر بعد از گرفتن مسیر ورودی از هاست باید بصورت زیر عمل کنی

milad.biroonvand
سه شنبه 23 آذر 1389, 21:44 عصر
ببخشید منظورم از هاست تو پست بالا همون آدرسی که عکس بر روی هارده ، مثلا درایود دی

کد




'First save the image to the table
Private Function SaveImageToDB(ByRef name As String) As Boolean
Try
Dim conn As New OleDbConnection
Dim cmd As OleDbCommand

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\YourDBFile.mdb;User Id=YourUsername;Password=YourPassword;"
conn.Open()

cmd = conn.CreateCommand()
cmd.CommandText = "INSERT INTO ImageTable(ImageName, Image) VALUES (@Name, @Image)"
Dim imgByteArray() As Byte
Try
Dim stream As New MemoryStream
Dim bmp As New Bitmap(stream)

bmp.Save(stream, ImageFormat.Jpeg)
imgByteArray = stream.ToArray()
stream.Close()

cmd.Parameters.AddWithValue("@Name", name)
cmd.Parameters.AddWithValue("@Image", imgByteArray)

If DirectCast(cmd.ExecuteNonQuery(), Integer) > 0 Then
Return True
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
Return False
End Try

conn.Close()
cmd.Dispose()
conn.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message)
Return False
End Try
End Function

'Retrieve image from table
Public Function GetImageFromDB(ByRef imageName As String) As Bitmap
Try
Dim conn As New OleDbConnection
Dim cmd As OleDbCommand
Dim reader As OleDbDataReader

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\YourDBFile.mdb;User Id=YourUsername;Password=YourPassword;"
conn.Open()

cmd = conn.CreateCommand()
cmd.CommandText = "SELECT Image FROM ImageTable WHERE ImageName = '" & imageName & "'"

reader = cmd.ExecuteReader

If reader.Read Then
Dim imgByteArray() As Byte

Try
imgByteArray = CType(reader(0), Byte())
Dim stream As New MemoryStream(imgByteArray)
Dim bmp As New Bitmap(stream)
stream.Close()
Return bmp
Catch ex As Exception
MessageBox.Show(ex.Message)
Return Nothing
End Try
End If

reader.Close()
conn.Close()

cmd.Dispose()
conn.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message)
Return Nothing
End Try
End Function

milad.biroonvand
سه شنبه 23 آذر 1389, 21:46 عصر
ببخشید منظورم از هاست تو پست بالا همون آدرسی که عکس بر روی هارده ، مثلا درایود دی

کد




'First save the image to the table
Private Function SaveImageToDB(ByRef name As String) As Boolean
Try
Dim conn As New OleDbConnection
Dim cmd As OleDbCommand

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\YourDBFile.mdb;User Id=YourUsername;Password=YourPassword;"
conn.Open()

cmd = conn.CreateCommand()
cmd.CommandText = "INSERT INTO ImageTable(ImageName, Image) VALUES (@Name, @Image)"
Dim imgByteArray() As Byte
Try
Dim stream As New MemoryStream
Dim bmp As New Bitmap(stream)

bmp.Save(stream, ImageFormat.Jpeg)
imgByteArray = stream.ToArray()
stream.Close()

cmd.Parameters.AddWithValue("@Name", name)
cmd.Parameters.AddWithValue("@Image", imgByteArray)

If DirectCast(cmd.ExecuteNonQuery(), Integer) > 0 Then
Return True
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
Return False
End Try

conn.Close()
cmd.Dispose()
conn.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message)
Return False
End Try
End Function

'Retrieve image from table
Public Function GetImageFromDB(ByRef imageName As String) As Bitmap
Try
Dim conn As New OleDbConnection
Dim cmd As OleDbCommand
Dim reader As OleDbDataReader

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\YourDBFile.mdb;User Id=YourUsername;Password=YourPassword;"
conn.Open()

cmd = conn.CreateCommand()
cmd.CommandText = "SELECT Image FROM ImageTable WHERE ImageName = '" & imageName & "'"

reader = cmd.ExecuteReader

If reader.Read Then
Dim imgByteArray() As Byte

Try
imgByteArray = CType(reader(0), Byte())
Dim stream As New MemoryStream(imgByteArray)
Dim bmp As New Bitmap(stream)
stream.Close()
Return bmp
Catch ex As Exception
MessageBox.Show(ex.Message)
Return Nothing
End Try
End If

reader.Close()
conn.Close()

cmd.Dispose()
conn.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message)
Return Nothing
End Try
End Function




اگه بازم تو کد بالا مشکل داشتی بگو تا یه نمونه پروژه برات بزارم

اینم ایمیلمه

azad222@gmail.com

خواجه محمدی
شنبه 28 آبان 1390, 20:42 عصر
سلام خسته نباشید من دارم باvb.net یک پروژه می نویسم می خواهم یک عکس را browse کنم ذخیره بکنم من باید از چه کنترلی استفاده کنم (در واقع باید ازpicture box استفاده کنم)

sanay_esh
شنبه 28 آبان 1390, 20:49 عصر
بله شما باید از picture box استفاده نمائید