السلام عليكم
لدي مشكلة في شأن اظهار الصور من قاعدة البيانات اثناء عملية العرض
استخدم access كقاعدة بيانات وبرنامج فيجوال بيسك 2010
حيث أقوم بحفظ البيانات في القاعدة , اعيد عرضها من DataGridView1 عبر الانتقال بين الاسطر
, لكن الصورة التي تم حفظها مع البيانات لاتظهر في picturebox رغم ظهور جميع البيانات الاخرى في مكانها.
الان ما اريد هو كيفية جعل الصورة المحفوظة والتي يظهر رابطها في قاعدة البيانات , تظهر في اطار الصورة picturebox1
السلام عليكم اخي الكريم
اذا كنت قد خزنت مسار الصورة واسمها في الجدول فستقوم بعرض الحقول كالمعتاد
وحقل الصورة يكون هكذا اليك الكود
كود :
Private Sub DataGridView1_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGridView1.SelectionChanged
Try
If DataGridView1.CurrentRow IsNot Nothing Then
'عرض الحقول
Txt_Id.text = DataGridView1.CurrentRow.Cells(0).Value
Txt_Name.text = DataGridView1.CurrentRow.Cells(1).Value
' وهكذا بقية الحقول حتى تنتهي الى حقل الصورة ويكون على النحو التالي
PictureBox1.Image = Image.FromFile("Path\ PicName.jpg")
End If
Catch ex As Exception
End Try
End Sub
وعليكم السلام ورحمة الله وبركاته
يمكنك مراجعة هذا الموضوع
فى حالة كنت تقوم بتخزين الصورة فى قاعدة البيانات
واذا كنت تقوم فقط بتسجيل الصورة كمسار
فكل ما عليك التاكد من صحة المسار فقط
تحياتى لك
وتمنياتى لك التوفيق
[/quote]
كود :
Private Sub DataGridView1_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGridView1.SelectionChanged
Try
OpenFileDialog1.Filter = "Images files (*.jpeg; *.jpg;*.tif;*.wmp;*.png;*.gif)|*.JPG|All files (*.*)|*.*"
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim imgpath As String = OpenFileDialog1.FileName
Dim imgname As String = System.IO.Path.GetFileName(imgpath)
Dim newpath As String = Application.StartupPath & "\PIC_ARTICLE\" & imgname
PictureBox1.Load(imgpath)
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
My.Computer.FileSystem.CopyFile(imgpath, newpath)
End If
Catch ex As Exception
End Try
End Sub
هذه هي الكيفية التي قمت بتخزين الصورة عليها
المثال ال
ذي حددت اعلاه , لم يكن يحدد اي cells وهذا لن يجهل البرنامج يتعرف من اين سيأخذ الصورة
كود :
Private Sub DataGridView1_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGridView1.SelectionChanged
Try
OpenFileDialog1.Filter = "Images files (*.jpeg; *.jpg;*.tif;*.wmp;*.png;*.gif)|*.JPG|All files (*.*)|*.*"
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim imgpath As String = OpenFileDialog1.FileName
Dim imgname As String = System.IO.Path.GetFileName(imgpath)
Dim newpath As String = Application.StartupPath & "\PIC_ARTICLE\" & imgname
PictureBox1.Load(imgpath)
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
My.Computer.FileSystem.CopyFile(imgpath, newpath)
End If
Catch ex As Exception
End Try
End Sub
هذه هي الكيفية التي قمت بتخزين الصورة عليها
المثال ال
ذي حددت اعلاه , لم يكن يحدد اي cells وهذا لن يجهل البرنامج يتعرف من اين سيأخذ الصورة
[/quote]
------------- ماذا أفعل في حالة ان اردت حفظ مجموعة من الصور وعرضها في قاعدة البيانات

يبدوا ان مشكلتي لربما هي المسار الذي يتم حفظ بشكل خاطئ
حيث أنني أريد من الكود أخذ صورة من مكان الصورة ونسخها الى مكان محدد , ومن ثم يأخذ المسار الجديد
لربما هناك خطأ فعلا في هذا الكود لانني جربت جميع الحلول لكن دون جدوى
[code]
Private Sub DataGridView1_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGridView1.SelectionChanged
Try
OpenFileDialog1.Filter = "Images files (*.jpeg; *.jpg;*.tif;*.wmp;*.png;*.gif)|*.JPG|All files (*.*)|*.*"
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim imgpath As String = OpenFileDialog1.FileName
Dim imgname As String = System.IO.Path.GetFileName(imgpath)
Dim newpath As String = Application.StartupPath & "\PIC_ARTICLE\" & imgname
PictureBox1.Load(imgpath)
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
My.Computer.FileSystem.CopyFile(imgpath, newpath)
End If
Catch ex As Exception
End Try
End Sub
[code/]
السلام عليكم اخي رائد
تفضل هذا مثال يقوم بحفظ الصورة في مجلد مستقل بعد اختيارها من اي مكان ويضع لها اسم يكون رقم الاي دي للسجل
ويتحقق من وجود صورة ان كانت تحمل نفس الاسم ويمكن حذف السجل وتحذف الصورة معه ايضا
اتمنى ان تقرأ الاكواد وتفهمها ثم قم بتغيير الاسماء والحقول لماتريد في مشروعك
دمت بالف خير
(06-07-19, 01:08 PM)ابراهيم ايبو كتب : [ -> ]السلام عليكم اخي الكريم
اولا الحدث DataGridView1_SelectionChanged الذي وضعته هو عند تغيير الاختيار في الداتا غرايد ولا علاقة له بفتح الصورة او نسخها او تخزينها
من المفترض اختيار الصورة في Button مستقل وفي حذث الحفظ يتم حفظ مسار الصورة وتسميتها وفق Txt_Id مثلا
وفي حدذ تغيير الاختيار DataGridView1_SelectionChanged نفذ الكود الذي وضعته لك فقط قم بتغيير سطر الصورة ليكون
كود :
PictureBox1.Image = Image.FromFile("image\" & Txt_id.Text & ".jpg") ' على اعتيار ان اسم الصورة هو رقم الايدي
انا حاليا في العمل والا لكنت عملت لك مثال
(06-07-19, 03:42 PM)ابراهيم ايبو كتب : [ -> ]السلام عليكم اخي رائد
تفضل هذا مثال يقوم بحفظ الصورة في مجلد مستقل بعد اختيارها من اي مكان ويضع لها اسم يكون رقم الاي دي للسجل
ويتحقق من وجود صورة ان كانت تحمل نفس الاسم ويمكن حذف السجل وتحذف الصورة معه ايضا
اتمنى ان تقرأ الاكواد وتفهمها ثم قم بتغيير الاسماء والحقول لماتريد في مشروعك
دمت بالف خير
أخي ابراهيم , لن تكفيك كلمات الشكر
جزاك الله عني

الف خير ... وجعلك انت ومن أحببت في واسع رحمته
لك التوفيق انشاء الله