منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة التقدم في BindingSource
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته

أخواني الكرام كانت لدي مشكلة في السجل العشوائي والحمد لله قمت بالحل بعد الإستناد على فكرة ابو رائد . ولاكن توجد لدي مشكلة وهي لااستطيع التقدم بالسجلات

كود :
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


        Dim EntranceQuestion As OleDbCommand = New OleDbCommand("SELECT QuestionID,Question,AnswerA,AnswerB,AnswerC,AnswerD,CorrectAnswer from EntranceQuestion", con)

        DataAdapter1 = New OleDbDataAdapter(EntranceQuestion)
        Dim builder1 As New OleDbCommandBuilder(DataAdapter1)

        DataSet1 = New DataSet()
        DataAdapter1.Fill(DataSet1, "EntranceQuestion")
        'انشاء بندج سورز جديد وادراج الداتاست والجدول بداخله للجدول الاول

        BindingSource1 = New BindingSource(DataSet1, "EntranceQuestion")
      
        Randomize()
        Dim rn As New Random
        Dim nb As Integer = rn.Next(0, BindingSource1.Count)

        QuestionIDTextBox.Text = BindingSource1.Item(nb)("QuestionID")
        QuestionTextBox.Text = BindingSource1.Item(nb)("Question")
        AnswerALabel2.Text = BindingSource1.Item(nb)("AnswerA")
        AnswerBLabel2.Text = BindingSource1.Item(nb)("AnswerB")
        AnswerCLabel2.Text = BindingSource1.Item(nb)("AnswerC")
        AnswerDLabel2.Text = BindingSource1.Item(nb)("AnswerD")
        CorrectAnswerTextBox.Text = BindingSource1.Item(nb)("CorrectAnswer")

    End Sub

وكود التقدم

كود :
BindingSource1.MoveNext()

ولاكن المشكلة أنه لايقوم بالتقدم للسجل التالي . مالحل بارك الله بكم

تحياتي
هل التكست بوكس ... مربوط ... بالحقل ...؟

ارفع المثال ... للاطلاع علية
مرحبا أخي مالك .
كان بودي ارفق المشروع بالكامل ولاكن الدنيا ملخبطة وفيه اكثر من شغلة راح تتوه الشخص . أنا راح ارفق المشروع بالكامل
عند الإنتهاء منه .. وهو مشروع إختبارات مثل الي بالمعاهد .

وهذا صفحة الكود بالكامل
كود :
Imports System.Data.OleDb

Public Class Form2
    Public con As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\data.accdb;Persist Security Info=False;")
    Dim DataSet1 As New DataSet
    Dim DataAdapter1 As New OleDbDataAdapter
    Dim BindingSource1 As BindingSource

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim EntranceQuestion As OleDbCommand = New OleDbCommand("SELECT QuestionID,Question,AnswerA,AnswerB,AnswerC,AnswerD,CorrectAnswer from EntranceQuestion", con)

        DataAdapter1 = New OleDbDataAdapter(EntranceQuestion)
        Dim builder1 As New OleDbCommandBuilder(DataAdapter1)

        DataSet1 = New DataSet()
        DataAdapter1.Fill(DataSet1, "EntranceQuestion")
        'انشاء بندج سورز جديد وادراج الداتاست والجدول بداخله للجدول الاول

        BindingSource1 = New BindingSource(DataSet1, "EntranceQuestion")
      
        Randomize()
        Dim rn As New Random
        Dim nb As Integer = rn.Next(0, BindingSource1.Count)

      

        QuestionIDTextBox.Text = BindingSource1.Item(nb)("QuestionID")
        QuestionTextBox.Text = BindingSource1.Item(nb)("Question")
        AnswerALabel2.Text = BindingSource1.Item(nb)("AnswerA")
        AnswerBLabel2.Text = BindingSource1.Item(nb)("AnswerB")
        AnswerCLabel2.Text = BindingSource1.Item(nb)("AnswerC")
        AnswerDLabel2.Text = BindingSource1.Item(nb)("AnswerD")
        CorrectAnswerTextBox.Text = BindingSource1.Item(nb)("CorrectAnswer")

    End Sub
  
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        BindingSource1.MoveNext()

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        BindingSource1.MovePrevious()
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        BindingSource1.MoveFirst()
    End Sub


End Class

هذه صورة للناتج .. طبعاً باقي أشتغل فيه Blush

الحمد لله بعد المعاناه الشديدة Big Grin وعصر المخيخ لقيت فكرة مجنونة عند واحد أجنبي وبسيطة مرة هههههههه

وهي أن أعمل كم فورم يعني 5 فورم . ثم ادخل الكود التالي في بوتون

كود :
Dim Random As Integer
Random = CInt(Int(5 * Rnd() + 2))
If Random = 2 Then
Dim Form As New Form2
Form.Show()
ElseIf Random = 3 Then
Dim Form As New Form3
Form.Show()
ElseIf Random = 4 Then
Dim Form As New Form4
Form.Show()
ElseIf Random = 5 Then
Dim Form As New Form5
Form.Show()
End If

طبعاً في كل فورم للقاعدة نغير الأستعلام RND() ونضرب في 3 .. والفورم الاخر نغير في استعلامه بالضرب في 8 وهاكذا
Big GrinBig GrinBig GrinBig GrinBig GrinBig Grin

شكرا وتحياتي