تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اختيار 3 اسماء عشوائية
#1
هناك اسماء معروضة في الجريد 1
كيف اختار 3 او اربعة اسماء عشوائية ويعرضوا في الجريد2

حاولت ولكن هناك خطا
  DataGridView2.Columns(0).HeaderText = "الرقم"
        DataGridView2.Columns(1).HeaderText = "الاســم"
        DataGridView2.Columns(2).HeaderText = "الهاتـف"
        DataGridView2.Columns(3).HeaderText = "الجـوال"
        Dim rn As New Random
        Dim xlist As New List(Of Integer)
        DataGridView2.Columns.Add("ddd", "")
        DataGridView2.Rows.Clear()
        Do While xlist.Count < 3
            Dim x As Integer = rn.Next(0, ds.Tables("emp").Rows.Count)
            If Not xlist.Contains(x) Then
                xlist.Add(x)
            End If
        Loop
        xlist.Sort()
        For Each xx As Integer In xlist
            If DataGridView2.Columns.Count > 1 Then
                MsgBox("")
            End If
            DataGridView2.Rows.Add(ds.Tables("emp").Rows(xx).ItemArray)
        Next
الرد
تم الشكر بواسطة:
#2
السادة هل من رد
الرد
تم الشكر بواسطة:
#3
هل مطلوب توضيح اكثر
الرد
تم الشكر بواسطة:
#4
ارفق مشروع مصغر للشاشة التى تتحدث عنها
حتى اقوم بكتابة الكود لك الذى يناسب لما لديك من مسميات وادوات فى الفورم

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة:
#5
المشروع
برجاء التعديل
للعلم


الملفات المرفقة
.rar   selectrandoum.rar (الحجم : 153.51 ك ب / التحميلات : 3)
الرد
تم الشكر بواسطة:
#6
تم رفع المثال برجاء التعديل ايها الوميل االفاضل
الرد
تم الشكر بواسطة:
#7
جميل جداً لكن سامحنى غير قادر على اعادة رفع المشروع
حيث ان المشروع المرفق الاصدار 9 

على اى حال ساشرح ما التعديلات التى ستقوم بفعلها بكل يسر وبدون اى مشكلة

تعال على السطر التالى
كود :
   Dim ds As New DataSet

واستبدله بهذا السطر
كود :
   Dim ds, ds2 As New DataSet

ناتى على السطر التالى
كود :
   Dim da As New OleDbDataAdapter

واستبدله بهذا السطر
كود :
   Dim da, da2 As New OleDbDataAdapter

الان ناتى على هذا السطر
كود :
   Dim req As String = "SELECT id,name,code,group from emp"

اسفل منه مباشراً قم باضافة هذا السطر
كود :
   Dim raq As String = "SELECT Top 3 id,name,code,group from emp ORDER BY Rnd(-(100000*id)*Time())"

الان تعال فى حدث الزر وهو Button1_Click
قم باضافة هذا الكود به
كود :
       If Conn.State = ConnectionState.Open Then Conn.Close()
       ds2.Clear()
       Dim comd As New OleDbCommandBuilder(da2)
       da2.SelectCommand = New OleDbCommand(raq, Conn)
       da2.Fill(ds2, "emp")
       Me.DataGridView2.DataSource = ds2.Tables("emp")

هل تلاحظ شئ
تماماً كده انا طبقت كودك فى اللود الخاص بالفورم لجلب البيانات من قاعدة البيانات
ليقوم بنفس الامر فى الزر ليقوم باستدعاء نفس الامر فى الداتا جريد 2 لكن كل ما تم هو

تغيير كود الاستعلام ليقوم بجلب 3 بشكل عشوائي من خلال تحويل كود الاستعلام الافتراضى
PHP كود :
SELECT id,name,code,group from emp 

الى ان يكون بهذا الشكل
كود :
SELECT Top 3 id,name,code,group from emp ORDER BY Rnd(-(100000*id)*Time())

الان كل ما عليك اذا كنت تريد عرض 5 بدلاً من 3 
ستقوم بتغيير رقم 3 فى كود الاستعلام لتجعله 5 فقط ليس اكثر

الامر الان اصبح بسيط اليس كذلك  Smile

كود الفورم كاملاً للمشروع بعد التعديل واضافة الكود الذى تم شرحه بالاعلى
كود :
Imports System.Data.OleDb
Public Class Form1
   Dim Conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" & Application.StartupPath & "\emp.mdb")
   Dim dr As OleDbDataReader
   Dim ds, ds2 As New DataSet
   Dim da, da2 As New OleDbDataAdapter
   Dim cmd As OleDbCommand
   Dim comb As OleDbCommandBuilder
   Dim req As String = "SELECT id,name,code,group from emp"
   Dim raq As String = "SELECT Top 3 id,name,code,group from emp ORDER BY Rnd(-(100000*id)*Time())"
   Dim dt As New DataTable

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       If Conn.State = ConnectionState.Open Then Conn.Close()
       ds.Clear()
       Dim comd As New OleDbCommandBuilder(da)
       da.SelectCommand = New OleDbCommand(req, Conn)
       da.Fill(ds, "emp")
       Me.DataGridView1.DataSource = ds.Tables("emp")
       'Dim DataGridView2 As New DataGridView
       'Dim DataTable2 As New DataTable
       'DataGridView2.DataSource = DataTable2


       'DataGridView2.Columns.Add("aaa", "الاسم")
       'DataGridView2.Columns(0).HeaderText = "الرقم"
       'DataGridView2.Columns(1).HeaderText = "الاســم"
       'DataGridView2.Columns(2).HeaderText = "الهاتـف"
       'DataGridView2.Columns(3).HeaderText = "الجـوال"

       
   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       If Conn.State = ConnectionState.Open Then Conn.Close()
       ds2.Clear()
       Dim comd As New OleDbCommandBuilder(da2)
       da2.SelectCommand = New OleDbCommand(raq, Conn)
       da2.Fill(ds2, "emp")
       Me.DataGridView2.DataSource = ds2.Tables("emp")
   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

   End Sub

   Private Sub DataGridView2_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)

   End Sub
End Class


تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة:
#8
شكرا
لكن كيف استخدم
randomize
بدلا من الوقت

لاني مش فاهم الهدف منها
وكيف استخدمت
الرد
تم الشكر بواسطة:
#9
الشكر لله والحمد لله
ولحمد لله على كل حال


بخصوص الـ Rnd المستخدم عن طريقة
كود :
Rnd(-(100000*id)*Time())

فهو كما فى الكود بالاعلى
والمعروف دائماً الشكل المثالى بهذا الشكل
كود :
((6 * Rnd()) + 1)

ولكم لمذا استخدم -100000 و time فى التوليد الرقم العشوائي
وهنا لاتمام انشاء رقم جديد كل ثانية حتى يتثنى مع كل تحديث عمل ترتب مختلف عن ما سبق

وستجد id وسط الارقام وهو المقصود بها رقم التسلسل لعمود id

يمكنك مراجعة الرابط التالى

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة:
#10
لانها اقرب في الفهم والتركيب
هل استطيع استخدام randomize

ولكي استخدمها في المستقبل
واذا  لا
انا اسف علي التعب
وشكرا

Randomize()

        raq = " SELECT Top 3 id,name,code,group from emp ORDER BY Int((id*6 * Rnd()) + 1)"
هذا الكود ينفذ مرة واحدة
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  جلب اسماء هذه الصفحات براوبطها ابو روضة 7 203 15-11-18, 10:04 PM
آخر رد: elgokr
  جلب اسماء وروابط هذه الصفحة بالHtmlAgilityPack ابو روضة 4 241 19-09-18, 08:52 AM
آخر رد: ابو روضة
  [سؤال] كيف اقوم باضافة زر اختيار toggle switch button مصطفى محمود 14 567 22-08-18, 06:17 PM
آخر رد: elgokr
  تعبئة الداتا جريد فيو عن طريق اختيار الكومبو بوكس فراس الغزي 7 400 18-08-18, 05:49 PM
آخر رد: elgokr
  [سؤال] اريد ان يتم تنفيذ هذا كود الحفظ او التحديث بسرعه عنذ اختيار سطر من الداتا جريد dametucorazon 4 229 30-07-18, 08:21 AM
آخر رد: elgokr
  [VB.NET] توليد ارقام عشوائية غير موجودة في قاعدة البيانات و حفظها فيها larbihamri 8 301 26-07-18, 10:45 PM
آخر رد: سعود
  اختيار روابط معينة من بين روابط ابو روضة 11 558 20-07-18, 06:41 PM
آخر رد: elgokr
  عرض اسماء الاجهزة داخل الشبكة المحلية atefkhalf2004 10 392 30-06-18, 08:48 PM
آخر رد: elgokr
  [سؤال] كيف اخلي البرنامج يشتغل بدون نت فروم ورك و طريقة اختيار النت فروم ورك hassan 12 7,427 25-02-18, 03:27 PM
آخر رد: فوبيا
  [سؤال] كيف اعمل سحب عشوائي مابين عدة اسماء Nete0 19 743 31-01-18, 03:17 PM
آخر رد: Basil Abdallah

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم