السلام عليكم
لدي مشكلة في شأن اظهار الصور من قاعدة البيانات اثناء عملية العرض
استخدم 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
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
06-07-19, 12:13 PM (آخر تعديل لهذه المشاركة : 06-07-19, 12:46 PM {2} بواسطة الرائد.)
[/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]
------------- ماذا أفعل في حالة ان اردت حفظ مجموعة من الصور وعرضها في قاعدة البيانات
السلام عليكم اخي الكريم اولا الحدث DataGridView1_SelectionChanged الذي وضعته هو عند تغيير الاختيار في الداتا غرايد ولا علاقة له بفتح الصورة او نسخها او تخزينها من المفترض اختيار الصورة في Button مستقل وفي حذث الحفظ يتم حفظ مسار الصورة وتسميتها وفق Txt_Id مثلا وفي حدذ تغيير الاختيار DataGridView1_SelectionChanged نفذ الكود الذي وضعته لك فقط قم بتغيير سطر الصورة ليكون
كود :
PictureBox1.Image = Image.FromFile("image\" & Txt_id.Text & ".jpg") ' على اعتيار ان اسم الصورة هو رقم الايدي
انا حاليا في العمل والا لكنت عملت لك مثال
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
يبدوا ان مشكلتي لربما هي المسار الذي يتم حفظ بشكل خاطئ
حيث أنني أريد من الكود أخذ صورة من مكان الصورة ونسخها الى مكان محدد , ومن ثم يأخذ المسار الجديد
لربما هناك خطأ فعلا في هذا الكود لانني جربت جميع الحلول لكن دون جدوى
[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
(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)ابراهيم ايبو كتب :
السلام عليكم اخي رائد
تفضل هذا مثال يقوم بحفظ الصورة في مجلد مستقل بعد اختيارها من اي مكان ويضع لها اسم يكون رقم الاي دي للسجل
ويتحقق من وجود صورة ان كانت تحمل نفس الاسم ويمكن حذف السجل وتحذف الصورة معه ايضا
اتمنى ان تقرأ الاكواد وتفهمها ثم قم بتغيير الاسماء والحقول لماتريد في مشروعك
دمت بالف خير
أخي ابراهيم , لن تكفيك كلمات الشكر
جزاك الله عني الف خير ... وجعلك انت ومن أحببت في واسع رحمته
لك التوفيق انشاء الله