السلام عليكم اخواني ي ريت كود لجلب صور موجودة بقاعدة البيانات بحقل موضوع بالصورة ادناه
قمت بمحاوله ربط pic box عن طريق ربطه بالحقل ولاكن فشلت محاولتي
تم عرض الصور ولاكن تفضل قاعدة البيانات مفتوحه حتى اذا سكرت الاتصال محتاجة كود احطه بال Load يجيب لي الصور من الحقل مباشرة ويسكر لي الاتصال بقاعدة البيانات بعد جلب الصور وشكرا
الحل باستخدام متغير واحد للاتصال .....نفتحه ونغلقه باكثر من حدث
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
26-04-16, 10:05 PM (آخر تعديل لهذه المشاركة : 26-04-16, 10:10 PM {2} بواسطة سعود.)
الصراحة جهزت المثال قبل ردك الاخير
PHP كود :
Public Class Form1 Dim con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb") Dim dt As DataTable Dim da As OleDb.OleDbDataAdapter Dim cmdb As OleDb.OleDbCommandBuilder Private Sub oncon() Try con.Open() Catch ex As Exception
End Try End Sub Private Sub ofcon() Try con.Close() Catch ex As Exception
End Try End Sub
Private Sub gd() PictureBox1.DataBindings.Clear() PictureBox1.Image = Nothing dt = New DataTable da = New OleDb.OleDbDataAdapter("select * from tb", con) cmdb = New OleDb.OleDbCommandBuilder(da) da.Fill(dt) PictureBox1.DataBindings.Add("image", dt, "pic", True) ofcon() End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load gd() End Sub
Private Function addpic(ByVal b() As Byte) As Boolean ' Try Dim row As DataRow = dt.NewRow row(1) = b dt.Rows.Add(row) da.Update(dt) Return True gd() ' Catch ex As Exception 'Return False ' End Try End Function
Private Function edpic(ByVal b() As Byte) As Boolean ' Try Dim row As DataRow = dt.Rows(Me.BindingContext(dt).Position) row.BeginEdit() row(1) = b row.EndEdit() da.Update(dt) Return True gd() ' Catch ex As Exception 'Return False ' End Try End Function
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Me.BindingContext(dt).Position -= 1 End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Me.BindingContext(dt).Position += 1
End Sub
Private Sub cmdnew_Click(sender As Object, e As EventArgs) Handles cmdnew.Click Dim o As New OpenFileDialog If o.ShowDialog = Windows.Forms.DialogResult.OK Then If addpic(My.Computer.FileSystem.ReadAllBytes(o.FileName)) Then MsgBox("تم حفظ الصورة بنجاح") Else MsgBox("حدث خطا", MsgBoxStyle.Critical, "") End If End If End Sub
Private Sub cmdedit_Click(sender As Object, e As EventArgs) Handles cmdedit.Click Dim o As New OpenFileDialog If o.ShowDialog = Windows.Forms.DialogResult.OK Then If edpic(My.Computer.FileSystem.ReadAllBytes(o.FileName)) Then MsgBox("تم التعديل بنجاح") Else MsgBox("حدث خطا", MsgBoxStyle.Critical, "") End If End If
End Sub
Private Sub cmddel_Click(sender As Object, e As EventArgs) Handles cmddel.Click dt.Rows(Me.BindingContext(dt).Position).Delete() da.Update(dt) gd() MsgBox("تم الحذف بنجاح") End Sub End Class
طبعا اضفت اجراءين oncon و ofcon
واقصد فتح الاتصال واغلاقه لكن بالمثال هذا لا نحتاج لفتح الاتصال وانما فقط للغلق
وضعت ofcon باجراء جلب البيانات gd
وان ظلت القاعدة مفتوحة فهذا يعني نحتاج وضع الاجراء بعد كل عملية تحديث(اضافة-تعديل-حذف)
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
26-04-16, 10:25 PM (آخر تعديل لهذه المشاركة : 26-04-16, 10:29 PM {2} بواسطة سعود.)
التعديل بسيط جدا
نضيف اداة كومبوبوكس ونربطها عن طريق data source
وعند تغيير القيمة في الكومبوكس تتغير الموضع في الداتاتيبل
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
دالة addpic فيها خطا اسناد الصورة لحقل رقم 0 وهو للايدي بينما رقم حقل الصورة هو 1 لقد عدلت على الكود بالمشاركة
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
Public Class Form1 Dim con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb") Dim dt As DataTable Dim da As OleDb.OleDbDataAdapter Dim cmdb As OleDb.OleDbCommandBuilder Private Sub oncon() Try con.Open() Catch ex As Exception
End Try End Sub Private Sub ofcon() Try con.Close() Catch ex As Exception
End Try End Sub
Private Sub gd() PictureBox1.DataBindings.Clear() PictureBox1.Image = Nothing dt = New DataTable da = New OleDb.OleDbDataAdapter("select * from tb", con) cmdb = New OleDb.OleDbCommandBuilder(da) da.Fill(dt) PictureBox1.DataBindings.Add("image", dt, "pic", True) ComboBox1.DataSource = dt ComboBox1.DisplayMember = "picname" ofcon() End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load gd() End Sub
Private Function addpic(ByVal b() As Byte, ByVal t As String) As Boolean ' Try Dim row As DataRow = dt.NewRow row(1) = b row(2) = t dt.Rows.Add(row) da.Update(dt) Return True gd() ' Catch ex As Exception 'Return False ' End Try End Function
Private Function edpic(ByVal b() As Byte) As Boolean ' Try Dim row As DataRow = dt.Rows(Me.BindingContext(dt).Position) row.BeginEdit() row(1) = b row.EndEdit() da.Update(dt) Return True gd() ' Catch ex As Exception 'Return False ' End Try End Function
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Me.BindingContext(dt).Position -= 1 End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Me.BindingContext(dt).Position += 1
End Sub
Private Sub cmdnew_Click(sender As Object, e As EventArgs) Handles cmdnew.Click Dim o As New OpenFileDialog If o.ShowDialog = Windows.Forms.DialogResult.OK Then If addpic(My.Computer.FileSystem.ReadAllBytes(o.FileName), IO.Path.GetFileNameWithoutExtension(o.FileName)) Then MsgBox("تم حفظ الصورة بنجاح") Else MsgBox("حدث خطا", MsgBoxStyle.Critical, "") End If End If End Sub
Private Sub cmdedit_Click(sender As Object, e As EventArgs) Handles cmdedit.Click Dim o As New OpenFileDialog If o.ShowDialog = Windows.Forms.DialogResult.OK Then If edpic(My.Computer.FileSystem.ReadAllBytes(o.FileName)) Then MsgBox("تم التعديل بنجاح") Else MsgBox("حدث خطا", MsgBoxStyle.Critical, "") End If End If
End Sub
Private Sub cmddel_Click(sender As Object, e As EventArgs) Handles cmddel.Click dt.Rows(Me.BindingContext(dt).Position).Delete() da.Update(dt) gd() MsgBox("تم الحذف بنجاح") End Sub
Private Sub cmdAll_Click(sender As Object, e As EventArgs) Handles cmdAll.Click For Each row As DataRow In dt.Rows row.Delete() Next da.Update(dt) MsgBox("تم حذف الكل") End Sub
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown If e.KeyData = Keys.Enter Then If TextBox1.Text.Trim = "" Then Exit Sub ' ComboBox1.SelectedText = TextBox1.Text ComboBox1.SelectedIndex = ComboBox1.FindString(TextBox1.Text) TextBox1.Clear() TextBox1.Select() TextBox1.Focus()
End If End Sub
Private Sub TextBox1_MouseClick(sender As Object, e As MouseEventArgs) Handles TextBox1.MouseClick If e.Button = Windows.Forms.MouseButtons.Left Then TextBox1.Clear() End If End Sub
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
End Sub End Class
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير