اخواني محتاج مساعدة بعرض تفاصيل بيانات لصورة........ ابغى اول ما اقوم بالضغط عليها .... تطلع تفاصيلها بصناديق ال Textbox ... بالداتا بيز مدرجة مسبقا داخل الداتا بيز
مجموعه من الصورة داخل ListView1 اريد عند الضغط على الصورة تظهر لي الصورة وتفاصليلها بالحقول
18-01-19, 11:43 PM (آخر تعديل لهذه المشاركة : 19-01-19, 12:22 AM {2} بواسطة حريف برمجة.)
ضع هذا الكود في أي مكان في الفورم :
PHP كود :
Private Sub ListView1_MouseClick(sender As Object, e As MouseEventArgs) Handles ListView1.MouseClick Dim nIndexStart As Integer = ListView1.FocusedItem.SubItems(0).Text.IndexOf("Car id :") 'Find the first occurrence of f1 Dim nIndexEnd As Integer = ListView1.FocusedItem.SubItems(0).Text.IndexOf("Car Kind :") 'Find the first occurrence of f2
If nIndexStart > -1 AndAlso nIndexEnd > -1 Then '-1 means the word was not found. Dim res As String = Strings.Mid(ListView1.FocusedItem.SubItems(0).Text, nIndexStart + "Car id :".Length + 1, nIndexEnd - nIndexStart - "Car id :".Length)
Dim dp As New OleDbDataAdapter("select * from Table1 where car_id =" & res & " ", conn) Dim ds As New DataSet dp.Fill(ds) If ds.Tables(0).Rows.Count <> 0 Then TXTID.Text = ds.Tables(0).Rows(0).Item(0) TextBox1.Text = ds.Tables(0).Rows(0).Item(1) TextBox2.Text = ds.Tables(0).Rows(0).Item(2) TextBox3.Text = ds.Tables(0).Rows(0).Item(3) PictureBox1.DataBindings.Clear() : PictureBox1.DataBindings.Add("Image", ds.Tables(0), "car_image", True) Else MsgBox("السجل غير موجود", 64, "Program Name") End If dp.Dispose() Else TextBox1.Text = "" End If End Sub
أيضا يوجد كود يتم استبداله بالكود التالي :
PHP كود :
Sub Showimageinlistview() 'عرض الصور والبيانات في الليست فيو
'مسح البيانات الموجودة في الليست فيو ListView1.Clear()
'إستعلام يجلب جميع البيانات Dim dp As New OleDbDataAdapter("SELECT * FROM Table1", conn) Dim dt As New DataTable
'تعبئة الداتاتيبل بالبيانات dp.Fill(dt)
'اعدادات اداة إميج ليست لإدراج الصور بها وربط الليست فيو بها لعرض الصور Dim ImageList As New ImageList ListView1.LargeImageList = ImageList
'تعديل عرض وارتفاع الصور 140 ImageList.ImageSize = New Size(140, 140)
'حلقة تكرارية دوران على جميع السجلات الموجودة في الداتاتيبل لجلب الصورة والبيانات For x As Integer = 0 To dt.Rows.Count - 1 ' هنا x = 0 ،، وسوف يفيدنا في جلب قيمة الصف الاول من الداتاتيبل وفي كل مره دوران يزيد بمقدار واحد
'جلب الصورة من حقل الصور 'لاحظ × هنا في أول الأمر تساوي صفر ثم عندما يعمل دوران يزيد مقدار واحد Dim CarImageByte() As Byte = dt.Rows(x).Item("car_image") Dim CarImage As New System.IO.MemoryStream(CarImageByte)
'إدراج الصورة بعد جلبها من حقل الصور في أداة إميج ليست لإدراجها في الليست فيو ImageList.Images.Add(Image.FromStream(CarImage), Color.White)
CarImage.Close()
'تعريف كائن من نوع آيتيم لليست فيو بمعنى صنف لليست فيو Dim Lvi As New ListViewItem()
'ادراج نوع ولون وموديل السيارة في الكائن لعرضها في الليست فيو Lvi.Text = "Car id :" & dt.Rows(x).Item("car_id") & vbNewLine & "Car Kind :" & dt.Rows(x).Item("car_kind") & vbNewLine & "Car Color : " & dt.Rows(x).Item("car_color") & vbNewLine & "Car Model : " & dt.Rows(x).Item("car_model")
'هذا السطر لعرض نوع السيارة فقط وإذا اردنا عرض حقل آخر نضيف & ونكتب اسم الحقل الموجود في الداتاتيبل 'Lvi.Text = "Car Kind :" & dt.Rows(x).Item("car_kind")
Lvi.ImageIndex = x
'إدراج البيانات في الليست فيو ListView1.Items.Add(Lvi)
If (PictureBox1.Image Is Nothing) Then
MsgBox("قم بإدراج الصورة أولاً", 64, "Program Name")
Exit Sub
End If
If TXTID.Text = "" Then
MsgBox("قم بإدخال البيانات أولاً", 64, "Program Name")
TXTID.Focus()
Exit Sub
End If
If TextBox1.Text = "" Then
MsgBox("قم بإدخال البيانات أولاً", 64, "Program Name")
TextBox1.Focus()
Exit Sub
End If
If TextBox2.Text = "" Then
MsgBox("قم بإدخال البيانات أولاً", 64, "Program Name")
TextBox2.Focus()
Exit Sub
End If
If TextBox3.Text = "" Then
MsgBox("قم بإدخال البيانات أولاً", 64, "Program Name")
TextBox3.Focus()
Exit Sub
End If
Dim ms As New System.IO.MemoryStream
PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
Dim picbyte() As Byte = ms.GetBuffer
Using Cmd As New OleDbCommand("Update Table1 Set car_kind=@car_kind, car_color=@car_color, car_model=@car_model, car_image=@car_image Where car_id=@car_id", conn)
19-01-19, 06:15 PM (آخر تعديل لهذه المشاركة : 19-01-19, 09:33 PM {2} بواسطة حريف برمجة.)
تم التعديل بنجاح ،،
كود التعديل كامل :
كود :
If (PictureBox1.Image Is Nothing) Then
MsgBox("قم بإدراج الصورة أولاً", 64, "Program Name")
Exit Sub
End If
If TXTID.Text = "" Then
MsgBox("قم بإدخال البيانات أولاً", 64, "Program Name")
TXTID.Focus()
Exit Sub
End If
If TextBox1.Text = "" Then
MsgBox("قم بإدخال البيانات أولاً", 64, "Program Name")
TextBox1.Focus()
Exit Sub
End If
If TextBox2.Text = "" Then
MsgBox("قم بإدخال البيانات أولاً", 64, "Program Name")
TextBox2.Focus()
Exit Sub
End If
If TextBox3.Text = "" Then
MsgBox("قم بإدخال البيانات أولاً", 64, "Program Name")
TextBox3.Focus()
Exit Sub
End If
Dim ms As New System.IO.MemoryStream
PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
Dim picbyte() As Byte = ms.GetBuffer
Using Cmd As New OleDbCommand("Update Table1 Set car_kind=@car_kind, car_color=@car_color, car_model=@car_model, car_image=@car_image where car_id=" & TXTID.Text & "", conn)
(24-01-19, 05:45 PM)mohamedgadain61 كتب : الله يعطيك العافية و يوفقك ويريفع من مراتبك يارب
آمين وياك ياغالي ،،
(27-01-19, 01:21 PM)mohamedgadain61 كتب : اخي الغالي [b]حريف برمجة[/b] لقد طلبنا منك سابقا نفس المثال اعلاه asp.net.vb اريد نفس هذا المثال المبسط بلغة ال asp.net اذا ما عليك أمر يا غالي
والله يعطيك العافية يارب .
أبشر ياغالي سوف تكون الداتابيز اكسس لتجنب مشكلة الإصدارات بين أجهزة الأعضاء ،،