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

نام تاپیک: ذخیره شدن تمام اطلاعات کنترلها در صورت ارور و بازگردانی همان اطلاعات به داخل کنترلها

  1. #1
    کاربر دائمی آواتار forodo
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شهر جدید پردیس
    پست
    1,468

    ذخیره شدن تمام اطلاعات کنترلها در صورت ارور و بازگردانی همان اطلاعات به داخل کنترلها

    سلام
    من با تراکنش اطلاعات رو داخل بانک می ریزم.
    حالا می خوام اگه rollback شد اطلاعات کنترلها داخل چیزی ذخیره بشه و فرم بسته بشه و وقتی که دوباره فرم رو باز کردم اطلاعات داخل کنترلهای مربوطه بریزه.
    من 50 تا فرم با کنترلها مختلف ( تکست باکس، ریدیوباتن، چکباکس، کمبوباکس و ... ) دارم که می خوام یه تابع باشه که فقط اون رو صدا بزنم و کاری نداشته باشم که کدوم فرم و چه کنترلهایی داره.
    هر فرمم ممکنه کنترلهاش فرق داشته باشه.
    چطور می تونم این کار رو بکنم؟
    با تشکر

  2. #2
    کاربر دائمی آواتار forodo
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شهر جدید پردیس
    پست
    1,468

    نقل قول: ذخیره شدن تمام اطلاعات کنترلها در صورت ارور و بازگردانی همان اطلاعات به داخل کنترلها

    در اصل اگه بشه یه آرایه تعریف کرد و مقادیر رو داخلش ریخت و دوباره فراخوانی کرد عالیه.
    چطور می تونم اینکار رو بکنم؟

  3. #3
    کاربر دائمی آواتار forodo
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شهر جدید پردیس
    پست
    1,468

    نقل قول: ذخیره شدن تمام اطلاعات کنترلها در صورت ارور و بازگردانی همان اطلاعات به داخل کنترلها

    دوستان کسی این کار رو نکرده؟

  4. #4
    کاربر دائمی آواتار forodo
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شهر جدید پردیس
    پست
    1,468

    نقل قول: ذخیره شدن تمام اطلاعات کنترلها در صورت ارور و بازگردانی همان اطلاعات به داخل کنترلها

    خودم نوشتم.
    فقط دوستان ببینید مشکلی نداره.
    کار می کنه. منظورم اینه که ببینید میشه بهترش کرد یا چیزه خاصی داره که ممکنه به مشکل بخوره.
    یه کلاس تعریف کردم و :
        static class clsFormOperation
    {
    // تعریف دیکشنری
    static Dictionary<string, string> nameValue = new Dictionary<string, string>();

    // ذخیره اطلاعات کنترلها داخل دیکشنری
    public static void saveDataToDictionaty(Form f)
    {
    foreach (Control c in f.Controls)
    {
    if (c is TextBox)
    {
    nameValue.Add(c.Name, ((TextBox)c).Text);
    }
    else if (c is ComboBox)
    {
    nameValue.Add(c.Name, ((ComboBox)c).SelectedValue.ToString());
    }
    searchControlsForSave(c);
    }
    }

    // گرفتن اطلاعات کنترلها از دیکشنری
    public static void getDataFromDictionaty(Form f)
    {
    foreach (Control c in f.Controls)
    {
    foreach (KeyValuePair<string, string> kvp in nameValue)
    {
    if (c is TextBox)
    {
    if (kvp.Key == c.Name)
    {
    c.Text = kvp.Value.ToString();
    }
    }
    if (c is ComboBox)
    {
    if (kvp.Key == c.Name)
    {
    ((ComboBox)c).SelectedValue = kvp.Value.ToString();
    }
    }
    }
    searchControlsForGet(c);
    }
    nameValue.Clear();
    }

    // جستجوی کنترلهای داخل فرم برای گرفتن مقادیر آنها برای ذخیره در دیکشنری
    static void searchControlsForSave(Control c)
    {
    foreach (Control ct in c.Controls)
    {
    if (ct is TextBox)
    {
    nameValue.Add(ct.Name, ((TextBox)ct).Text);
    }
    else if (ct is ComboBox)
    {
    nameValue.Add(ct.Name, ((ComboBox)ct).SelectedValue.ToString());
    }
    searchControlsForSave(ct);
    }
    }

    // جستجوی کنترلها برای پیدا کردن کنترل و ریختن مقدار داخل کنترل از دیکشنری
    static void searchControlsForGet(Control c)
    {
    foreach (Control ct in c.Controls)
    {
    foreach (KeyValuePair<string, string> kvp in nameValue)
    {
    if (ct is TextBox)
    {
    if (kvp.Key == ct.Name)
    {
    ct.Text = kvp.Value.ToString();
    }
    }
    if (ct is ComboBox)
    {
    if (kvp.Key == ct.Name)
    {
    ((ComboBox)ct).SelectedValue = kvp.Value.ToString();
    }
    }
    }
    searchControlsForGet(ct);
    }
    }
    }

    حالا میشه کنترلهای دیگه رو هم داخلش قرار داد.
    برای استفاده هم در داخل catch که اطلاعات رو save کنه:
                clsFormOperation.saveDataToDictionaty(this);
    this.Close();

    و برای بازخوانی داخل رویداد لود فرم:
                clsFormOperation.getDataFromDictionaty(this);

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

  1. سوال: ذخیره شدن اطلاعات در دیتا بیس به صورت علامت سوال
    نوشته شده توسط reza_majid68 در بخش ASP.NET Web Forms
    پاسخ: 10
    آخرین پست: شنبه 17 دی 1390, 15:03 عصر
  2. حرفه ای: ذخیره اطلاعات برنامه به صورت Portable
    نوشته شده توسط arash020 در بخش برنامه نویسی در 6 VB
    پاسخ: 10
    آخرین پست: شنبه 22 خرداد 1389, 03:31 صبح
  3. ذخیره شدن یوزر و پسورد در پایگاه به صورت رمز
    نوشته شده توسط bbc_sh در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: جمعه 08 شهریور 1387, 16:40 عصر
  4. پاسخ: 5
    آخرین پست: پنج شنبه 24 مرداد 1387, 18:38 عصر
  5. نحوه ذخیره اطلاعات حتی در صورت بسته شدن صفحه
    نوشته شده توسط arsalansalar در بخش ASP.NET Web Forms
    پاسخ: 21
    آخرین پست: شنبه 28 اردیبهشت 1387, 08:05 صبح

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

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