![]() |
|
اختيار 3 اسماء عشوائية - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : اختيار 3 اسماء عشوائية (/showthread.php?tid=28140) الصفحات:
1
2
|
اختيار 3 اسماء عشوائية - atefkhalf2004 - 05-01-19 هناك اسماء معروضة في الجريد 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 RE: اختيار 3 اسماء عشوائية - atefkhalf2004 - 06-01-19 السادة هل من رد RE: اختيار 3 اسماء عشوائية - atefkhalf2004 - 06-01-19 هل مطلوب توضيح اكثر RE: اختيار 3 اسماء عشوائية - elgokr - 06-01-19 ارفق مشروع مصغر للشاشة التى تتحدث عنها
حتى اقوم بكتابة الكود لك الذى يناسب لما لديك من مسميات وادوات فى الفورم
تحياتى لك
وتمنياتى لك التوفيق
RE: اختيار 3 اسماء عشوائية - atefkhalf2004 - 06-01-19 المشروع برجاء التعديل للعلم RE: اختيار 3 اسماء عشوائية - atefkhalf2004 - 07-01-19 تم رفع المثال برجاء التعديل ايها الوميل االفاضل RE: اختيار 3 اسماء عشوائية - elgokr - 07-01-19 جميل جداً لكن سامحنى غير قادر على اعادة رفع المشروع
حيث ان المشروع المرفق الاصدار 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()هل تلاحظ شئ
تماماً كده انا طبقت كودك فى اللود الخاص بالفورم لجلب البيانات من قاعدة البيانات
ليقوم بنفس الامر فى الزر ليقوم باستدعاء نفس الامر فى الداتا جريد 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 فقط ليس اكثر
الامر الان اصبح بسيط اليس كذلك
كود الفورم كاملاً للمشروع بعد التعديل واضافة الكود الذى تم شرحه بالاعلى كود : Imports System.Data.OleDbتحياتى لك
وتمنياتى لك التوفيق
RE: اختيار 3 اسماء عشوائية - atefkhalf2004 - 07-01-19 شكرا لكن كيف استخدم randomize بدلا من الوقت لاني مش فاهم الهدف منها وكيف استخدمت RE: اختيار 3 اسماء عشوائية - elgokr - 07-01-19 الشكر لله والحمد لله
ولحمد لله على كل حال
بخصوص الـ Rnd المستخدم عن طريقة كود : Rnd(-(100000*id)*Time())فهو كما فى الكود بالاعلى
والمعروف دائماً الشكل المثالى بهذا الشكلكود : ((6 * Rnd()) + 1)ولكم لمذا استخدم -100000 و time فى التوليد الرقم العشوائي
وهنا لاتمام انشاء رقم جديد كل ثانية حتى يتثنى مع كل تحديث عمل ترتب مختلف عن ما سبق
وستجد id وسط الارقام وهو المقصود بها رقم التسلسل لعمود id
يمكنك مراجعة الرابط التالى
تحياتى لك
وتمنياتى لك التوفيق
RE: اختيار 3 اسماء عشوائية - atefkhalf2004 - 07-01-19 لانها اقرب في الفهم والتركيب هل استطيع استخدام randomize ولكي استخدمها في المستقبل واذا لا انا اسف علي التعب وشكرا Randomize() raq = " SELECT Top 3 id,name,code,group from emp ORDER BY Int((id*6 * Rnd()) + 1)" هذا الكود ينفذ مرة واحدة |