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

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

PHP كود :
       Me.BindingContext(dt).Position Int(Rnd() * dt.Rows.Count 1


PHP كود :
Public Class Form1
    Dim con 
As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=db.accdb")
 
   Dim da As New OleDb.OleDbDataAdapter("select * from tb"con)
 
   Dim dt As DataTable
    Private Sub gd
()
 
       dt = New DataTable
        da
.Fill(dt)
 
       gp()
 
       tid.DataBindings.Add("text"dt"tid")
 
       tname.DataBindings.Add("text"dt"tname")
 
       dt.Dispose()
 
   End Sub
    Private Sub gp
()
b:
 
       Dim p As Integer Int(Rnd() * dt.Rows.Count 1)
 
       If Me.BindingContext(dt).Position p Then GoTo b
        Me
.BindingContext(dt).Position p
    End Sub


    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        gd
()
 
   End Sub

    Private Sub Button1_Click
(sender As ObjectAs EventArgsHandles Button1.Click
        gp
()
 
   End Sub
End 
Class 
  وهذا كلاس المثال
جزاك الله خيرا عني اخي الكريم
لكني لاحظت ان الاختيارات العشوائية تبقى كما هي في كل مرة دون تغير فقد لاحظت انه اختار السجل 14 ثم 10 وهكذا في كل مرة افتح فيه البرنامج يعني كل ما افتح البرنامج يكون الخيار الاول السجل 14 ثم السجل 10
جرب تكتب بحدث تحميل الفورم كلمة Randomize
يمكنك بتغيير بسيط في كود الأخ سعود
كود :
Dim r As New Random
Dim p As Integer = r.Next(0, dt.Rows.Count - 1)

مع ملاحظة أن تعريف New Random يتم في سطر مستقل ولا يدمج
هل يمكن لعمل نفس الطريقة بحيث انه لايقبل اختيار الاسم مرتين في نفس اليوم ؟؟
هل يمكن لعمل نفس الطريقة بحيث انه لايقبل اختيار الاسم مرتين في نفس اليوم ؟؟ 
حاولت الوصول ولم اوفق
هل من حل
(07-01-19, 12:37 AM)atefkhalf2004 كتب : [ -> ]هل يمكن لعمل نفس الطريقة بحيث انه لايقبل اختيار الاسم مرتين في نفس اليوم ؟؟ 
حاولت الوصول ولم اوفق
هل من حل


نعم يمكنك ذلك


وبابسط طرية تعمل جدول ارشيف عبارة عن التالى
كود :
id - e-name - e-date

بحيث تسجل به نتائج الاسماء التى تخرج من العشوائي
فنقول انه تم تنفيذ اختيار عشوائي لاختيار اسم محمد
فيصبح الناتج فى الجدول
كود :
1 - محمد - 7/1/2019

الان عند اختيار اسم عشوائي جديد
يكون فى عملية تحقق بحيث يتحقق الاسم الناتج من الاختيار العشوائي مع جدول الارشيف 
بحيث اذا كان الاسم لم يتواجد في الجدول طبقاً لتاريخ اليوم يقوم باخذ الاسم العشوائي واذا تواجد يقوم باعادة اختيار اسم عشوائي

اتمنى ان تكون الفكرة وصلت لك

تحياتى لك
وتمنياتى لك التوفيق