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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  متغيرات اسماء الملفات atefkhalf2004 1 337 15-11-23, 02:40 PM
آخر رد: atefkhalf2004
Bug [سؤال] قائمة ب اسماء برامج فك تشفير البرامج وقرائة السورسات Aymanr3b 0 285 06-09-23, 12:56 AM
آخر رد: Aymanr3b
  تغيير اسماء الاسبوع kebboud 1 379 12-07-23, 01:39 AM
آخر رد: Shade0001
  اختيار نوع الطابعة Lathe1 4 1,124 09-04-23, 04:20 PM
آخر رد: عبدالله الدوسري
  [VB.NET] اريد عرض اسماء الجداول من قاعدة البيانات سكوال سيرفرس alsaab120 4 1,796 23-02-23, 12:37 AM
آخر رد: ابو انس
Photo خطأ عند اختيار الصف الدراسي مصمم هاوي 5 832 05-02-23, 02:31 AM
آخر رد: مصمم هاوي
  اختيار عنصر معين من قائمة تتولد فيها ازار عددها متغير atefkhalf2004 16 1,167 22-01-23, 12:56 AM
آخر رد: atefkhalf2004
  [سؤال] هناك ليست بوكس مربوطه بقاعده بيانات وعايز كود لجلب لجلب اسماء العناصر المحدده حسن الجلب 1 601 18-08-22, 07:20 AM
آخر رد: سعود
  مساعدة في حل لمشكله الخطأ عند محاولة الاتصال ونسيان اختيار البورت mohamedallams 7 1,086 30-07-22, 10:17 PM
آخر رد: asmarsou
  [سؤال] عايز كود عرض اسماء الجداول من قاعد البيانات الي ليست بوكس حسن الجلب 1 693 23-07-22, 08:53 PM
آخر رد: سعود

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


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