تعديل كود حفظ الصورة من PictureBox1
If DataSet1.Tables("Tab").Rows.Count = 0 Then
MsgBox("الجدول فارغ من السجلات", 16 + 524288, "تنبيه")
Exit Sub
End If
Try
If PictureBox1.Image IsNot Nothing Then
If MsgBox(" هل تريد استبدال صورة الحالية رقم " & Label1.Text & " ؟ ", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.OkCancel, "استبدال صورة") = MsgBoxResult.Cancel Then Exit Sub
End If
Application.DoEvents()
Dim f As New OpenFileDialog
f.Filter = "Files(*.jpg)|*.jpg|Files(*.gif)|*.gif|Files(*.bmp)|*.bmp|Files(*.png)|*.png"
f.Title = "ادراج صورة"
f.FileName = ""
If f.ShowDialog() = Windows.Forms.DialogResult.OK Then
'ادارج الصورة وتغيير ابعادها وحجمها وامتدادها وحفظها في الميموري ثم استدعاؤها من الميموري وحفظها في قاعدة البيانات
'السبب في حفظ الصورة اولا في الميموري ثم حفظها في قاعدة البيانات هو
'لما تدرج صورة بالحالة العادية وتغير ابعادها وبدك تحفظها ما تقدر تتحكم في الصورة الاصلية لحتى تغلق البرنامج لانها بتظل معلقه
' يعني ممكن بدك تمسح الصورة الاصلية وهيك ما بتقدر اما بهذه الطريقة فيك تتحكم في الصورة الاصلية والبرنامج مفتوح
Dim imgByteArray() As Byte
Dim Stream As New MemoryStream()
Dim uploadedImage As New Bitmap(f.FileName)
Dim newSize As New Size(200, 250)
Dim newBitmap As New Bitmap(uploadedImage, newSize)
newBitmap.Save(Stream, System.Drawing.Imaging.ImageFormat.Jpeg)
imgByteArray = Stream.ToArray()
Application.DoEvents()
'كود حفظ الصورة
'كود معرفة رقم الصف الحالي في قاعدة البيانات
Dim Row_Num As Integer = Me.BindingContext(DataSet1, "Tab").Position
DataSet1.Tables("Tab").Rows(Row_Num).BeginEdit()
DataSet1.Tables("Tab").Rows(Row_Num).Item("pic") = imgByteArray
DataSet1.Tables("Tab").Rows(Row_Num).EndEdit()
Stream.Close()
'كود حفظ
Validate()
DataAdapter.Update(DataSet1.Tables("Tab"))
DataSet1.AcceptChanges()
f.Dispose()
LoadPhoto()
MsgBox("تم حفظ الصورة نجاح", MsgBoxStyle.MsgBoxRight + MsgBoxStyle.Information, "نجاح ")
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
If DataSet1.Tables("Tab").Rows.Count = 0 Then
MsgBox("الجدول فارغ من السجلات", 16 + 524288, "تنبيه")
Exit Sub
End If
Try
If PictureBox1.Image IsNot Nothing Then
If MsgBox(" هل تريد استبدال صورة الحالية رقم " & Label1.Text & " ؟ ", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.OkCancel, "استبدال صورة") = MsgBoxResult.Cancel Then Exit Sub
End If
Application.DoEvents()
Dim f As New OpenFileDialog
f.Filter = "Files(*.jpg)|*.jpg|Files(*.gif)|*.gif|Files(*.bmp)|*.bmp|Files(*.png)|*.png"
f.Title = "ادراج صورة"
f.FileName = ""
If f.ShowDialog() = Windows.Forms.DialogResult.OK Then
'ادارج الصورة وتغيير ابعادها وحجمها وامتدادها وحفظها في الميموري ثم استدعاؤها من الميموري وحفظها في قاعدة البيانات
'السبب في حفظ الصورة اولا في الميموري ثم حفظها في قاعدة البيانات هو
'لما تدرج صورة بالحالة العادية وتغير ابعادها وبدك تحفظها ما تقدر تتحكم في الصورة الاصلية لحتى تغلق البرنامج لانها بتظل معلقه
' يعني ممكن بدك تمسح الصورة الاصلية وهيك ما بتقدر اما بهذه الطريقة فيك تتحكم في الصورة الاصلية والبرنامج مفتوح
Dim imgByteArray() As Byte
Dim Stream As New MemoryStream()
Dim uploadedImage As New Bitmap(f.FileName)
Dim newSize As New Size(200, 250)
Dim newBitmap As New Bitmap(uploadedImage, newSize)
newBitmap.Save(Stream, System.Drawing.Imaging.ImageFormat.Jpeg)
imgByteArray = Stream.ToArray()
Application.DoEvents()
'كود حفظ الصورة
'كود معرفة رقم الصف الحالي في قاعدة البيانات
Dim Row_Num As Integer = Me.BindingContext(DataSet1, "Tab").Position
DataSet1.Tables("Tab").Rows(Row_Num).BeginEdit()
DataSet1.Tables("Tab").Rows(Row_Num).Item("pic") = imgByteArray
DataSet1.Tables("Tab").Rows(Row_Num).EndEdit()
Stream.Close()
'كود حفظ
Validate()
DataAdapter.Update(DataSet1.Tables("Tab"))
DataSet1.AcceptChanges()
f.Dispose()
LoadPhoto()
MsgBox("تم حفظ الصورة نجاح", MsgBoxStyle.MsgBoxRight + MsgBoxStyle.Information, "نجاح ")
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
