تقييم الموضوع :
  • 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 ك ب / التحميلات : 14)
الرد
تم الشكر بواسطة:
#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)"
هذا الكود ينفذ مرة واحدة
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [SQL] اختيار سجل محدد من الجدول على أساس ترتيبه mmaalmesry 2 85 منذ 11 ساعة مضت
آخر رد: mmaalmesry
  كيف يتم ملئ خلية فى الداتا جريد فيو بناء على اختيار قيمة خلية اخرى عبارة عن كومبو بوك talatm 1 186 14-08-21, 08:27 PM
آخر رد: اسامه الهرماوي
  ممكن طريقة نقل اسماء من datagridview الي اكثر من textbox العطر الرايق 1 350 27-07-21, 03:59 AM
آخر رد: aldery
  [VB.NET] اريد عرض اسماء الجداول من قاعدة البيانات سكوال سيرفرس alsaab120 2 477 07-05-21, 01:45 AM
آخر رد: alsaab120
  [VB.NET] اختيار البيانات غير مكررة من الداتاتابل محمد اسماعيل 3 545 24-04-21, 06:23 AM
آخر رد: محمد اسماعيل
  توليد ارقام باركود عشوائية muaamar 1 430 16-03-21, 01:21 AM
آخر رد: Bibo2030
  [سؤال] عايز كود يجمع اسماء الألوان ودراجتها في ليست بوكس حسن الجلب 1 445 16-01-21, 08:37 AM
آخر رد: moosa_alabri
  [VB.NET] تقنية linq اختيار عدد معين من ListBox الماجيك مسعد 6 639 26-12-20, 08:10 PM
آخر رد: الماجيك مسعد
  [VB.NET] محتاج كود عرض اكثر من جدول فى داتا جرد فيو واحدة عن طريق اختيار الجدول من كومبوكس mohammed1994 1 846 01-09-20, 04:56 PM
آخر رد: اسامه الهرماوي
  اريد عرض اليوم حسب اختيار التاريخ ارجو المساعده الله يبارك فيكم كريم عبودي 4 1,032 23-08-20, 01:59 PM
آخر رد: اسامه الهرماوي

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


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