السلام عليكم ورحمة الله وبركاته
يا شباب العرب .. :D
كيف آخذ صفوف من ( الداتا بيس ) بطريقة عشوائية
بحيث ما يتكرر الصف
بمعنى لو عندي 100 صف .. ، أبغى آخذ منها 20 صف عشوائيا وغير متكررة ..
الفزعة تكفووون ..
السلام عليكم ورحمة الله وبركاته
يا شباب العرب .. :D
كيف آخذ صفوف من ( الداتا بيس ) بطريقة عشوائية
بحيث ما يتكرر الصف
بمعنى لو عندي 100 صف .. ، أبغى آخذ منها 20 صف عشوائيا وغير متكررة ..
الفزعة تكفووون ..
جرب هذه
select top 10 * from [table_name] order by newid()
تم تعديل هذه المشاركة بواسطة abumarie2003 في 5 ديسمبر 2006 في 18:29
سأجربها ..
وأرد لك ..
اخي العزيز هناك طرقة سهله جدا" باستخدام
asp.Net 2005
وهي اضافة gridview واختيار الصفوف منها بشكل عشوائي و غير مكرر
وما عليك سوى كتابة الكود التالي
Dim ran As New Random تعريف رقم عشوائي
Dim i, As Integer
Dim a(9) As Integer عرفنا مصفوفة طولها عشرة
For i = 0 To 9 العدد المطلوب لاستخراجه
Dim x As Integer = ran.Next(0, GridView1.Rows.Count)
a(i) = GridView1.Rows(x).Cells(0).Text
b(i) = x
For j = 0 To i - 1
If a(i) = a(j) Then
i = i - 1
Exit For
End If
Next
Next
يعطيك العافية ..
لكني أنا جربت هذا الكود
()select top 10 * from [table_name] order by newid
وماشي مضبوط
.. لكن هذا ما يمنع اني أجرب فكرتك .. وراح أستفيد منها ..
DBMS كتب:يعطيك العافية ..لكني أنا جربت هذا الكود
()select top 10 * from [table_name] order by newidوماشي مضبوط
.. لكن هذا ما يمنع اني أجرب فكرتك .. وراح أستفيد منها ..
خلي بالك أن هذه الطريقة لا تعطيك 20 صف عشوائي بالمعنى الصحيح، بل تعطي أول 20 صف في الجدول.
اقتباسخلي بالك أن هذه الطريقة لا تعطيك 20 صف عشوائي بالمعنى الصحيح، بل تعطي أول 20 صف في الجدول.
عزيزي .. System Down
أنا جربت الكود ويعطين عشوااائي من 50 صف !!
طيب نفذ الكود مرتين وراء بعض. ستجد أن البيانات التي يرجعها هي نفسها أي أنها ليست عشوائية.
أمر select top x يرجع أول x صف من الجدول حسب الترتيب المعطى
بس انت نسبت الــــ ()newid
لو كنت تستخدم ال DataTable فإنك تستطيع الوصول للسجلات كالتالي:
dt.Rows[rowIndex]["ColumnName"];
و بالتالي نلاحظ أنه يمكن التحكم في ال rowIndex ليكون رقما عشوائيا ليعطينا سجلات عشوائية و لكن.......
لا تنس أنه بالعادة أول سجل يحمل index رقم صفر و أيضا لا تنسى أن أكبر عدد عشوائي يجب أن لا يزيد عن عدد السجلات الموجودة.
بالتالي يمكن عمل هذا الكود في حال إفترضنا أن جميع السجلات متسلسلة
int rowsCount = dt.Rows.Count; Random rndIndex = new Random(); Response.Write(dt.Rows[rndIndex.Next(0,rowsCount)]["ColumnName"].ToString());
إذا كانت السجلات بعضها قد حذف فهذا يعني أنه ستظهر لك رسالة خطأ في حال عرض سجل غير موجود و بالتالي يجب إستخدام الشرط للتأكد من أن السجل موجود أو لأ .. أعتقد هناك طريقة إسمها IsNull()..
للأسف أنا الان على جهاز ليس به منصة للدوت نت . و لكن أعتقد أن الفكرة واضحة و سهلة و يمكن إنجازها :)
بالتوفيق
تم تعديل هذه المشاركة بواسطة محمد خليل أبو صلاح في 2 يناير 2007 في 15:37
You can fly while you can touch the sky
طيب .. يا شباب
ايش رايكم بهذا الكود ..
هل هو يأخذ صفوف عشوائية من الداتا بيس وبدون تكرار ؟؟
'هنا نقوم بتعريف نص يحتوي على معلومات قاعدة البيانات التي كتبناها في صفحة web.config
طبعا الكود لأخينا (أبو فارس) .. لأني ناقشته في هذا الموضوع في أحد المواضيع ..وعمل هذا الكود ..
وقمت بتجربته .. وهو يعمل بشكل جيد ..
::. أتمنى تجربة الكود للتأكد أكثر .::
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…