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

نام تاپیک: انتخاب چند رکورد تصادفی و ذخیره در آرایه

  1. #1

    انتخاب چند رکورد تصادفی و ذخیره در آرایه

    سلام .
    من این سوال 10 بار به شکل های مختلف مطرح کردم ولی جواب درستی به من داده نشد.
    چند تا رکورد به صورت تصادفی انتخاب میشن. چطور مقدار یکی از فیلد ها رو تو آرایه بریزم؟
    سوالم مبهم نیست؟
    خواهش میکنم هر جوابی که میتونید ،بگید ...

    ممنون
    آخرین ویرایش به وسیله Sajjad.Aghapour : چهارشنبه 10 شهریور 1389 در 13:25 عصر دلیل: لطفا برای تاپیک خود عنوان مناسب انتخاب کنید/

  2. #2

    Smile نقل قول: کمک کنید

    خوب رکورد از کجا بصورت تصادفی انتخاب میشه؟
    آیا از دیتابیس بصورت تصادفی انتخاب میشود؟
    بله: خوب. پس این جدول کلید اصلی دارد. از طریق کلید اصلی به سطر مربوطه مراجعه میکنیم و سپس با استفاده از نام فیلدها راحت میتونیم به مقدار ها دسترسی پیدا کنیم.

    در غیر اینصورت توضیحات بیشتری بده.

    موفق باشید
    علی پاییزی
    آخرین ویرایش به وسیله ali_autumnal : چهارشنبه 10 شهریور 1389 در 12:21 عصر دلیل: این پست به دلیل تکراری بودن به طور خودکار ادغام شده است.

  3. #3

    نقل قول: کمک کنید

    برنامه آزمون آنلاین هست.
    کلید اصلی دارد.
    الان با این کد اطلاعات واکشی میشه و در gridview نمیش داده میشه.
    SELECT TOP 20 TITLE,J1,....J4 ORDER BY NEWID()

    این 20 تا سوال را به صورت تصادفی انتخاب میکنه.
    برای هر سوال یک فیلد جواب صحیح وجود داره.
    حالا میخوام جواب صحیح این 20 سوال را تو آرایه بریزم که بعدا با جواب های کاربر مقایسه کنم.
    ممنون

  4. #4
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    iran
    پست
    311

    نقل قول: کمک کنید

    اگه با پایگاه دارید کار می کنید می تونید برای خوندن رکورد ها از reader استفاده کنید.

    موفق باشید.

  5. #5
    کاربر دائمی آواتار javad_r_85
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    590

    نقل قول: کمک کنید

    نقل قول نوشته شده توسط manij_mhm مشاهده تاپیک
    اگه با پایگاه دارید کار می کنید می تونید برای خوندن رکورد ها از reader استفاده کنید.

    موفق باشید.
    همونطوری که دوستم فرمودند از دیتا ریدر ها استفاده کن که رکورها را تک تک بر میگردونه و با استفاده از متد rdr.read() یعنی تا زمانی که رکودها را می خونه مقادیر را بگیر و در آرایه قرار بده

  6. #6

    نقل قول: کمک کنید

    ممنون از همتون.
    ولی من تا حالا اینجوری کار نکردم.
    کدش چی؟

  7. #7

    نقل قول: کمک کنید

    من دارم از gridview استفاده میکنم . با این جطور میشه؟

  8. #8
    کاربر دائمی آواتار javad_r_85
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    590

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    این یه نمونه کده که در صورتی که مقدار برگشتی داری سطری باشه پیغم میده

    SqlDataReader rdr;
    cmdText = new SqlCommand("SELECT * FROM COSTOMERs", con);
    con.Open();
    rdr = cmdText.ExecuteReader();

    while (rdr.Read())
    MessageBox.Show("0k");
    rdr.Close();
    con.Close();





    شما بااستفاده از کد زیر می تونید این سطر را در یک آرایه بریزید

    object[] k;
    rdr.GetValues(k);




    فقط کافیه که بدونید مثلا فیلد اول رشته می باشه و از تبدیلها استفاده کنی
    و یا متدهای دیگر rdr مانندrdr.GetString(); که مقدار فیلد خاصی را بر میگردونه استفاده کنید

  9. #9
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    iran
    پست
    311

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    فقط کافیه به جای ExecuteNonQuery از ExecuteReader استفاده کنی

    SqlDataReader read = DA.SelectCommand.ExecuteReader();


    تمام رکورد ها با کد بالا در read ذخیره شده حالا برای دسترسی به فیلد خاصی می نویسیم:
      while (read.Read())
    {
    my_Array[i] = read[i];
    }

  10. #10
    کاربر دائمی آواتار Masoome_das
    تاریخ عضویت
    تیر 1389
    محل زندگی
    تهران
    سن
    41
    پست
    199

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    با پیشنهادی که دوستان دادند باز هم شما مجبورید کل اطلاعات را از پایگاه دادتان بخوانید و سطر به سطر تست کنید که آیا این سطر جزو انتخاب هایتان است یا خیر
    اگر شما تمایل دارید از DataSet استفاده کنید در یک آرایه کلید های تصادفی مورد نظرتان را قرار دهید سپس dataSet را فیلتر کنید و سطرهایی که با کلید شما برابری دارد را انتخاب کنید

  11. #11

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

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

    این روش ها که دوستان گفتند خوبه اما برای ویندوز، چون شما در وب به سختی می تونید اطلاعات آرایه رو نگاه دارید تا پس از بازگشت اطلاعات از طرف کاربر مقایسه کنید در نتیجه باید الگوریتم مناسبتری در نظر بگیرید

    1. شما بیست سوال از بانک دریافت کنید و به کاربر نمایش بدید
    2. سپس جواب ها رو از کاربر دریافت کنید
    3. جواب ها ارسالی با جواب های اصلی مقایسه شده به کاربر نمایش داده بشه یا ذخیره بشه
    برای اینکه این مراحل صحیح انجام بشه شما قطعاً یک کلید اصلی در بانک دارید که یکتا هست، زمانی دریافت سوالات شماره یکتایی هر سوال هم باید دریافت و کنار سوال نگاه داری بشه ( در مورد نحوه این کار به تالار مربوطه مراجعه کنید)

    زمانی که به مرحله سوم رسیدید باید جوابهای سوالات با شماره هایی که دریافت کردید دوباره بازخوانی کنید و مقایسه انجام شده و نتیجه به کاربر نمایش داده بشه

    در کل استفاده از آرایه های معمولی دیگه رسم نیست و به جای اون باید شما از کانکشن های کلاس جنریک استفاده کنید که امکانات بهتری به شما می ده مانند لیست ها

    و اما یک نکته دیگه اینکه اگر سوالات شما چهار جوابی باشه باید از دیتاتیبل استفاده کنید چون پاسخ ها هم باید همراه سوال دریافت بشه اما اگر جاخالی یا تشریحی هست از دیکشنری استفاده کنید

    System.Collections.Generic.List<string> questions = new System.Collections.Generic.List<string>();


    System.Collections.Generic.Dictionary<int, Object> questions = new System.Collections.Generic.Dictionary<int, object>();


    البته زمانی که اینکه از آبجکت یا رشته استفاده کنید بسته به شما و برنامه تون داره
    (فرض بر این که شما کار با دیتابیس و دریافت اطلاعات بلد هستید)

  12. #12
    کاربر دائمی آواتار #aliyari_C
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    همین نزدیکی
    پست
    200

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    سلام
    همانظور که مشاهده کردید , بهترین نتیجه ای که می توان از این چند بحث کرد این است که فقطی Data هایمان در حافظه است, چرا باید خودمان را درگیر SELECT کردن در بانک کنیم(البته در مواقعی باید این کار را کرد)ولی در مواقعی هم نباید این کار را کرد.
    این هم یکی از چند دللایل خلق LINQ می باشد.

    برای این کار ابتدا کلاس زیر را تعرف می کنیم

    class TableTest
    {
    private int _ID;
    private string _Question;
    private int _Reply;

    public TableTest()
    {
    }
    public TableTest(int ID, String Question)
    {
    this._ID = ID;
    this._Question = Question;

    }
    public TableTest(int ID, int Reply)
    {
    this._ID = ID;
    this._Reply = Reply;
    }
    public int ID
    {
    get { return _ID; }
    set { _ID = value; }
    }
    public string Question
    {
    get { return _Question; }
    set { _Question = value; }
    }
    public int Reply
    {
    get { return _Reply; }
    set { _Reply = value; }
    }
    }
    سپس کد زیر را هم اضافه می کنیم

    //SortedDictionary<int, string> sdc = new SortedDictionary<int, string>();
    //این لیست جهت نمایش دادن سوال یه کاربر
    List<TableTest> Ls = new List<TableTest>();
    //این لیست جهت گرفتن تمامی سوالها از کاربر
    List<TableTest> Lg = new List<TableTest>();

    //این لیست جهت نمایش دادن نتیجه آزمون به کاریر
    SortedDictionary<int, bool> Lr = new SortedDictionary<int, bool>();
    //برای گرفتن 20 عدد اتفاقی برای دسترسی به رکورد
    int[] j = Enumerable.Range(1, this.database11DataSet.Table1.Count).OrderBy(k => k = Guid.NewGuid().GetHashCode()).Take(20).ToArray();

    //جهت گرفتن 20 رکورد از جدول
    foreach (int item in j)
    Ls.Add(new TableTest((int)database11DataSet.Table1.Select("ID =" + item).First()["ID"], database11DataSet.Table1.Select("ID=" + item).First()["question"].ToString())); // sdc.Add((int)dataSet11.TavleCsharp.Select("ID==" + item).First()["ID"], dataSet11.TavleCsharp.Select("ID==" + item).First()["question"].ToString());
    //جهت گرفتن جوابهای تست از کاربر که در اینجا تمامی تستها گزینه 2 قرار داده شده
    foreach (var d in Ls)
    Lg.Add(new TableTest(d.ID, 2));

    Ls.Clear();
    //در اینجا تمامی نتایج برسی و درون لیست ریخنه می شود
    foreach (var f in Lg)
    {


    Lr.Add(f.ID, (database11DataSet.Table1.Select("ID=" + f.ID + "and reply=" + f.Reply).Count() == 0));

    }

    //اینم مشاهده نتیجه
    StringBuilder sb=new StringBuilder();

    foreach (var item in Lr)
    sb.AppendLine( item.Key.ToString() +" : "+item.Value.ToString());
    MessageBox.Show( sb.ToString());

    اگر نامفهوم بود بگو
    موفق وتندرست باشی
    __________________________________________________ _________________________
    چون به دریاه می توانی راه یافت.................سوی یک قطره چرا باید شتافت

  13. #13

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    واقعا" از همه ممنونم.
    راستش من از asp.net استفاده میکنم.

  14. #14

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    من فکر می کنم باز باید برگردیم به قوانین سایت

    جناب ahmad14.h نکته اینکه تالاری سوال پرسیدید اشتباه هست و باید در تالار مربوطه بپرسید چون بعضی از دوستان فقط تحت ویندوز کار می کنند و ممکن راه حل ها با وب فرق داشته باشه البته سوء تفاهم برای دوستان نشه برای این می گم که اساتید اون تالار از تجربه شون شما استفاده کنید چون ممکن به اینجا کمتر سر بزنن

    جناب #aliyari_C من از راه حل شما سر درنیاوردم ؟ شما در وب وقتی سوالات به سمت کلاینت ارسال می کنید باید یک جوری شماره اون ها رو در سرور ذخیره کنید تا بدونید پس از بازگشت چه شماره سوالاتی ارسال شده بر مبنای همون ها جواب ها از بانک دریافت و مقایسه بشه
    و نکته دیگه اینکه برعکس شما من فکر می کنم باید انتخاب سوالات در بخش سرور دیتا صورت بگیره و نه در سطح لایه اول برنامه ! چون شما نمی دونید تعداد سوالات چندتا هست و اگر ثابت فرض کنید امکان توسعه برنامه گرفته می شه در نهایت بهترین کار استفاده از یک sp هست که سوالات دریافت و یک sp برای دریافت نتایج داشته باشید در نهایت LINQ هم جزء بار اضافی برای سرور چیزی نداره پس همون بهتره از روشها اتصال معمول استفاده بشه و از یک کلاس ویژه که یک بار اتصال بده تا بار کمتری بر سرور بوجود بیاد

  15. #15

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    من تو تالار مربوطه سوالم مطرح کردم کسی جواب درست حسابی نداد.همه میگن بقیشو که خودت میدونی .
    من 1 ماه هم نیست که دارم کار میکنم دیگه بقیش چمیدونم آخه!!!!!
    فقط هم چون پروژه برای فاغ التحصیلی ام بود یاد گرفتم.
    میتونستم مثل خیلی های دیگه از یه نفر دیگه آماده شده رو بگیرم بعد تحویل استاد بدم.
    آخرین ویرایش به وسیله ahmad14.h : پنج شنبه 11 شهریور 1389 در 11:30 صبح

  16. #16

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    سلام
    تمام کسانی که تو اینجور انجمن ها رفت و آمد دارن مثل شما علاقمند بودن و به دانشگاه اکتفا نکردن اما اون کسی که گفته بقیه اش خودت می دونی مبنا رو بر این گذاشته که شما یکم اطلاعات داری که خوب شما باید در جوابش می گفتی که نه و یا در زمانی که پست می دی همون ابتدا بگی در چه سطحی هستی تا دوستان بیشتر راهنمایی کنند ( هرچند گاهی بعضی ها فقط می خوان پست بدن و علاقه شدید به ابراز وجود دارن که کم هستند)
    با این حال جواب صحیح در تالار خودش
    در مورد هر بخش از برنامه هم باید جداگانه جستجو کنی و اگر نتیجه نداد سوال بپرسی و نه اینکه همه چیز در یک تاپیک بپرسی و معمولاً در تالار های مختلف یک تاپیک بالای تالار هست که سوالات قدیمی مهم در اون هست که می تونی سریعتر به جواب برسی

    حالا هم بگو کجاش نفهمیدی ؟

    شاد بمانید
    سامعی

  17. #17

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    درسته.
    والا این کدها رو که هیچی نفهمیدم.
    با SqlDataSource اطلاعات(20 رکورد تصادفی) رو میخونم تو یه datalist نمایش میدم.jتو هر سطر یه radiobuttonlist هست که کاربر جوابشو تو اون میزنه.
    حالا هر سوال گزینه صحیح اش هم تو جدول ذخیره شده.
    نمیدونم چطور فیلد گزینه صحیح اون رکورد هایی که واکشی میشن رو یه جا ذخیره کنم.
    اگه این قسمت رو انجام بدم بقی اش فکر نکنم زیاد سخت باشه.
    ممنون

  18. #18

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    اول اینکه شما به یکی از مدیران تالار پیغام بدید تاپیک به تالار asp.net منتقل کنند تا از دوستانی که در این زمینه امتحان آنلاین تجربه بیشتری دارن کمک بگیری
    دوم شما نباید اول جواب رو همراه سوالات واکشی کنید باید شماره سوال بگیرید و بعد جواب دریافت کنید من قبلاً اشاره کردم

    برای نگاه داری شماره سوال ها راه حل زیاد هست مثلاً session یا کوکی ها یا یک جدول در دیتابیس یا HiddenField یا ....

    باید دید برای منظور شما کدام بهینه هست و مقدار بازدید کننده از سایت چقدر هست (البته فکر کنم پروژه شما دانشجویی هست که نیاز به محاسبات زیاد نداره از session استفاده کن تا بار روی سرور ایجاد نشه)

  19. #19

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    ممنونم. اونا فقط کد asp.net میدن . من کد C#‎ میخوام.

  20. #20

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    دوست عزیز این حرفتون جای اشکال داره
    به زبان ساده asp تکنولوژی تلفیق تگهای html با زبان برنامه نویسی شماست حالا این زبان می تونه #C باشه یا دلفی یا VB تفاوتی نمی کنه
    تگ های asp ربطی به کدهای برنامه شما نداره مانند کدهایی که با بانک در ارتباط هستند
    در نتیجه شما باید زمان سوال پرسیدن خاطر نشان کنید که با چه زبانی کار می کنید هرچند بعد یک مدت می فهمید که تفاوت آنچنانی بین زبان های دات نت نیست و به راحتی می تونید به هم تبدیلشون کنید پس نگران این مساله نباشید

  21. #21

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    این پروژه دانشگاهیم هست. پروژه برای فارغ التحصیلی کاردانی.
    تا کمتر از 3 هفته دیگه من باید وارد دانشگاه برای کارشناسی بشم. تو این مدت کم من چی کار کنم!
    الان دارم هر کاری میکنم تا از یه جا کمک بگیرم. کسی کمکی که میخوام نمیکنه.

  22. #22
    کاربر دائمی آواتار #aliyari_C
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    همین نزدیکی
    پست
    200

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    جناب #aliyari_C من از راه حل شما سر درنیاوردم ؟
    بگو کجاش رو سر در نیاوردی تا برات تشریحش کنم!
    شما در وب وقتی سوالات به سمت کلاینت ارسال می کنید......
    اولا ایشان تاپیکشان را در بخش برنامه نویسی در C#‎‎‎‎ عنوان کردن و ما هم app جواب دادیم
    دوست عزیز احمد سامعی اگر می شه شما هم کد asp ش رو بذارید تا ما هم اسفاده کنیم

  23. #23

    نقل قول: انتخاب چند رکورد تصادفی و ذخیره در آرایه

    نقل قول نوشته شده توسط #aliyari_C مشاهده تاپیک
    اولا ایشان تاپیکشان را در بخش برنامه نویسی در C#‎‎‎‎‎[/URL] عنوان کردن و ما هم app جواب دادیم
    ممنون از دقت شما اما در پست های اول اشاره کردند که آزمون آنلاین هست
    برای همین من در چند پست از جواب ها اشاره کردم که ایشون تالار اشتباهی سوال پرسیدن و منظور وب هست. همچنین در پست قبلی روش من گفتم بسته به نیاز باید یکی از روش ها انتخاب بشه
    چون بحث مفصل هست فکر کنم با قطعه کد نشه چیزی رو نشان داد یا باید راه ( الگوریتم ) گفت یا پروژه کامل گذاشت که در این مورد فکر کنم باید گذاشت خودش انجام بده تا درگیر بشه و قسمت های مختلف براش سوال پیش بیاد و بپرسه تا یاد بگیره

    شاد بمانید

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

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