نمایش نتایج 1 تا 24 از 24

نام تاپیک: انتخاب چند رکورد به صورت random ?

  1. #1
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247

    انتخاب چند رکورد به صورت random ?

    سلام دوستان :

    دوستان من در حال ساختن یک برنامه تحت ویندوز با C#‎ هستم , تو این برنامه قرار است یک سری امتحان به صورت تستسی گرفته بشه . حالا من تو یه قسمت از این برنامه که قرار تست به صورت Random از دانش آموز گرفته بشه به این مشکل برخوردم که چطور باید من یک سری رکورد به صورت Random از بانک انتخاب کنم..کمکی که شما به من میتونید بکنید این است که روش انتخاب رکورد به صورت random از بانک را که رکورد تکراری هم نباشه به من با یک نمونه کد کوچک توضیح بدین .

    با تشکر

  2. #2
    شما با استفاده از کلاس Random مثلا 10تا شماره رندوم بدست میاری و داخل آرایه میذاری به شکلی که هربار چک کنی این شماره درآرایه نباشه ودرضمن شماره ها از تعداد رکوردهات بیشتر نباشه
    وبعد میری اون رکوردهارو سلکت میکنی

  3. #3
    کاربر دائمی آواتار ARA
    تاریخ عضویت
    آبان 1383
    محل زندگی
    Bad Sector
    پست
    448
    به نظر من قسمت cursor ها رو توی sql sever نگاه کن بدردت میخوره
    همینطوری که دوستمون once4ever گفتند عمل کن و برای select کردن از procedure استفاده کن که یک عدد بگیره و به کمک cursor اون رو برات fetch کنه

  4. #4
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    نقل قول نوشته شده توسط ARA
    به نظر من قسمت cursor ها رو توی sql sever نگاه کن بدردت میخوره
    به کمک cursor اون رو برات fetch کنه
    دوست عزیز میشه یه کم در مورد این مطلب ک گفتی توضیح بدی ....اگر منابع فارسی هم در این مورد معرفی کنی چه بهتر؟

  5. #5
    یه دستور sql هست که این کارو انجام میده .یه جستجوی کوچولو در گوگل همه چیزو بخوبی بهت نشون میده .

  6. #6
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    سلام :
    یک مسئله در مورد مطالبی که عرض کردم پیش آمده که اگر حل بشه کارم جلو میره........
    چطوری میشه مقدار برگشتی select زیر را در یک متغییر ذخیره کرد؟
    da1.SelectCommand=new SqlCommand();
    da1.SelectCommand.CommandType=CommandType.Text;
    da1.SelectCommand.Connection=cnn1;
    "da1.SelectCommand.CommandText ="SELECT MAX(id) From Tb_Master
    da1.Fill(ds1, "Tb_Master");

  7. #7
    کاربر دائمی آواتار ARA
    تاریخ عضویت
    آبان 1383
    محل زندگی
    Bad Sector
    پست
    448
    مگه الان تو dataset ذخیره نکردی ؟
    استفاده کن دیگه

  8. #8
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    نقل قول نوشته شده توسط ARA
    مگه الان تو dataset ذخیره نکردی ؟
    استفاده کن دیگه
    میشه یکی بگه چه جوری از dataset بگیرمش بریزم تو یه متغییر؟

  9. #9
    کاربر تازه وارد آواتار Y2K
    تاریخ عضویت
    مهر 1385
    محل زندگی
    Location
    پست
    56
    این دستور انتخاب رندوم چند رکورد از بانک اطلاعاتی در دیتابیسهای مختلف
    SQL to Select a random row from a database table

    که تو SQL Server بدین صورته
     
    SELECT TOP X column FROM table ORDER BY NEWID()

    x=یک عدد

    اینم گرفتن یه ستون از دیتاست
     
    DataRow dr=new DataRow();
    dr=Dataset.Tables["TableName"].Rows(0);
    string s;
    s=dr["ColumnName"].ToString();

  10. #10
    کاربر دائمی آواتار ARA
    تاریخ عضویت
    آبان 1383
    محل زندگی
    Bad Sector
    پست
    448

    Thumbs down


    الان توی ds1 حداقل یک رکورد داری

    ds1.Tables["Tb_Master"].Rows[0][1];


    دسترسی به فیلد اول رکورد اول

  11. #11
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    نقل قول نوشته شده توسط younas
    این دستور انتخاب رندوم چند رکورد از بانک اطلاعاتی در دیتابیسهای مختلف
    SQL to Select a random row from a database table

    که تو SQL Server بدین صورته
     
    SELECT TOP X column FROM table ORDER BY NEWID()

    x=یک عدد

    اینم گرفتن یه ستون از دیتاست
     
    DataRow dr=new DataRow();
    dr=Dataset.Tables["TableName"].Rows(0);
    string s;
    s=dr["ColumnName"].ToString();
    دوست عزیز من یه خورده دیر متوجه میشم !!!!!!!
    البته تست هم کردم با کد زیر ولی همش یک عدد تکراری میده!
    da1.SelectCommand.CommandText = "SELECT TOP 10 id FROM Tb_Master ORDER BY ID "

    da1.Fill(ds1, "Tb_Master");

    DataRow dr1;
    dr1 = ds1.Tables["Tb_Master"].Rows[0];
    string s;
    s = dr1["id"].ToString();

    میشه بگین مشکل کجاست؟
    در ضمن x در کوئری شما چی کار میکنه ! مقدارشو تغییر دادم ولی تغییری ایجاد نشد؟
    newid چی کار میکنه؟
    با تشکر

  12. #12
    کاربر دائمی آواتار ARA
    تاریخ عضویت
    آبان 1383
    محل زندگی
    Bad Sector
    پست
    448
    error میده یا کاری نمیکنه

  13. #13
    کاربر تازه وارد آواتار Y2K
    تاریخ عضویت
    مهر 1385
    محل زندگی
    Location
    پست
    56
    خوب تو دستور Sql باید NewID() رو به همون صورت بنویسی
    تنها چیزایی که می تونه عوض بشه تو اون دستور
    1: نام جدول
    2: TOP X که می تونی اسم فیلدات رو هم بذاری

    اگه چندین رکورد میخوای بکشی بیرون باید یه حلقه هم اضافه کنی
     

    foreach(DaraRow dr in DataSet.Tables["TableName"].Rows)
    {

    آرایه = dr["ColumnName"].ToString()
    }

  14. #14
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    سلام:
    آیا این کوئری "SELECT TOP 10 id FROM Tb_Master ORDER BY ID یک رکورد به صورت Random انتخاب میکنه؟؟؟؟؟؟
    اگر جواب مثبت است !!! پس چرا هر چقدر من سعی میکنم فقط اولین رکورد را انتخاب میکند؟

  15. #15
    کاربر تازه وارد آواتار Y2K
    تاریخ عضویت
    مهر 1385
    محل زندگی
    Location
    پست
    56
    کوئری درست به صورت زیر میباشد
     
    SELECT TOP 10 id FROM Tb_Master ORDER BY NEWID()

    دقت کنید باید در آخر دستور NEWID() بنویسید نه ID
    این دستور 10 رکورد تصادفی را از جدول مورد نظر انتخاب می کند


    در جواب سوال دوم شما:
    زیرا در دستور
     
    dr1 = ds1.Tables["Tb_Master"].Rows[0];

    شماره نوشته شده در روبروی ROWS، شماره ردیف موجود در دیتاست را نشان می دهد
    و شما همیشه اولین رکورد را انتخاب میکردید

  16. #16
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    دوست عزیز خیلی ممنون از توجهتون....
    امتحان میکنم جوابشو بهتون میگم.

  17. #17
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    دستت خیلی خیلی درد نکنه....مشکلم حل شد.

  18. #18
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247

    اولویت بکارگیری دستورات sql ؟

    با سلام یه مشکل کوچیک در مورد مطالب قبل برام درست شده!
    دستور کوئری زیر را که اجرا میکنم erorr میگیره؟
    خودم فکر میکنم یا ترتیب پرانتزها را رعایت نکردم یا بعضی کلمات کلیدی sql را نمیشه با هم به کار برد؟
    SELECT DISTINCT TOP (@count)(Numid) FROM Tb_Master ORDER BY NEWID()  WHERE Section IN @section

  19. #19
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    من منتظرم !!!!!!!!!!!!!!!!1111

  20. #20
    کاربر دائمی آواتار ARA
    تاریخ عضویت
    آبان 1383
    محل زندگی
    Bad Sector
    پست
    448
    https://barnamenevis.org/showth...&highlight=SQL

    این رو نگاه کن شاید بدردت بخوره

  21. #21
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    تشکر جناب ARA.

    من آی کیوم خیلی پایینه!!!!!!!!!

    با لینک شما هم نتونستم مشکلم را حل کنم !

    لطفا یکی راهنمایی کنه کل کارم لنگ این کوئری!!!!!!!!!!

  22. #22
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    کسی نمیتونه کمکم کنه؟

  23. #23
    این رو یه تستی بکن

    Section IN (@section)

  24. #24
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    من برای اینکه تست کنم قسمت Distinct را از کوئری حذف کردم و بعد اجرا کردم, مشکلی نداشت .
    ولی وقتی Distinct را میزارم Eroor میگیره!!!!!!!!

تاپیک های مشابه

  1. مشکل اعداد Random و البته غیر تکراری
    نوشته شده توسط rosenth در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 6
    آخرین پست: دوشنبه 23 اردیبهشت 1392, 21:29 عصر
  2. تابع Random در وی‌بی
    نوشته شده توسط zh_parsai در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: جمعه 22 دی 1385, 14:57 عصر
  3. کلاس Random
    نوشته شده توسط kiani_behzad در بخش C#‎‎
    پاسخ: 2
    آخرین پست: یک شنبه 14 آبان 1385, 19:39 عصر
  4. Random
    نوشته شده توسط مهدوی پور در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: پنج شنبه 03 فروردین 1385, 14:32 عصر
  5. سئوالی در مورد کار با فایلهای Random
    نوشته شده توسط Vahab در بخش VB.NET
    پاسخ: 2
    آخرین پست: جمعه 03 مرداد 1382, 07:13 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •