مشكلة التقدم في BindingSource - العزابي - 21-10-13
السلام عليكم ورحمة الله وبركاته
أخواني الكرام كانت لدي مشكلة في السجل العشوائي والحمد لله قمت بالحل بعد الإستناد على فكرة ابو رائد . ولاكن توجد لدي مشكلة وهي لااستطيع التقدم بالسجلات
كود :
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()
ولاكن المشكلة أنه لايقوم بالتقدم للسجل التالي . مالحل بارك الله بكم
تحياتي
RE: مشكلة التقدم في BindingSource - مالكـ - 21-10-13
هل التكست بوكس ... مربوط ... بالحقل ...؟
ارفع المثال ... للاطلاع علية
RE: مشكلة التقدم في BindingSource - العزابي - 21-10-13
مرحبا أخي مالك .
كان بودي ارفق المشروع بالكامل ولاكن الدنيا ملخبطة وفيه اكثر من شغلة راح تتوه الشخص . أنا راح ارفق المشروع بالكامل
عند الإنتهاء منه .. وهو مشروع إختبارات مثل الي بالمعاهد .
وهذا صفحة الكود بالكامل
كود :
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
هذه صورة للناتج .. طبعاً باقي أشتغل فيه 
RE: مشكلة التقدم في BindingSource - العزابي - 22-10-13
الحمد لله بعد المعاناه الشديدة وعصر المخيخ لقيت فكرة مجنونة عند واحد أجنبي وبسيطة مرة هههههههه
وهي أن أعمل كم فورم يعني 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 وهاكذا
     
شكرا وتحياتي
|