تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 4 از 6 اولاول 123456 آخرآخر
نمايش نتايج 31 به 40 از 52

نام تاپيک: دسترسی به فرم پدر؟

  1. #31
    اگه نباشه جاش خالی می مونه M-B-M's Avatar
    تاريخ عضويت
    Mar 2006
    محل سكونت
    ایران - مشهد
    پست ها
    371

    پيش فرض

    سلام دوست عزیز
    ببخشید چون من هیچگونه مرجع خاصی در دسترس ندارم و با DataReader, DataRow, ... زیاد کار نکرده ام برای همین طریقه کار با آنها را یاد ندارم به همین علت در فرمایشات شما به چند سئوال برخورد کردم

    1.
    using (System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter("SELECT * FROM [tablename] WHERE [primarykey]=123;", "---CONNECTIONSTRING---"))
    چگونه می توان فیلد PrimaryKey آن را مقدار دهی کرد؟(معادل این دستور چیست؟)
    dbCom.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CuId", IdCu));

    2.
    طبیعتاً برای آپدیت دیتابیس هم باز باید با DataAdapter کار کنید.
    منظور همان
    StudentTableAdapter.Update(markazDBDataSet.Student );
    است؟

    3.
    طبیعتاً در شرایط DataReader برای آپدیت نهایی باید از Command استفاده کنید.
    چگونه؟


    و در پایان اگر مرجع خاصی برای آشنایی با DataReader,... (فایل های Pdf آموزشی یا ...) به من معرفی کنید ممنون میشوم
    با تشکر فراوان

  2. #32
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    چگونه می توان فیلد PrimaryKey آن را مقدار دهی کرد؟(معادل این دستور چیست؟)

    منظور همان
    StudentTableAdapter.Update(markazDBDataSet.Student );
    برای یک dataadapter صفر کیلومتر، کدی مثل این:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و اگر dataadapter جدول مورد نظر را دارید و موجود است:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ولی این روشها به زور برای چندین سطر اطلاعات مناسب هستند و بازدهی خوبی دارند، چه رسد برای یک سطر دیتا !
    مثل کشتن پشه با آر.پی.جی می ماند !

    --------------

    چگونه؟
    شما به راحتی میتو.انید یک شی Command با دستور UPDATE یا INSERT یا DELETE بسازید و با همان روش پارامتری، پارامترها را بدهید و با متد ExecuteNonQuery دستور را اجرا کنید.

    طبیعتاً لایه بندی صحیح میتواند کارتان را بسیار ساده و شفاف کند.
    فقط به عنوان نمونه میتوانید مثال موجود در تاپیک زیر را دانلود کنید و ببینید چطور یک Dll مسئول ویرایش دیتابیس است و بقیه برنامه به راحتی و با چند خط کد از این dll استفاده میکنند.

    forum.p30world.com/showthread.php?t=219657
    به کد پروژه FDBM دقت کنید.

    --------------

    در پایان اگر مرجع خاصی برای آشنایی با DataReader,... (فایل های Pdf آموزشی یا ...)
    متاسفانه pdf فارسی آماده ندارم، شاید اگر جستجو کنید پیدا کنید.
    شما باید دنبال pdf و یا کتابهای ADO.Net باشید که اختصاصاً مربوط به کلاسهای فضای نام System.Data میشود.
    (کتابش وجود دارد و میتوانید تهیه کنید، برای pdf هم اگر سرچ کنید، شاید پیدا شود.)

    موفق باشید.

  3. #33
    پروفشنال
    تاريخ عضويت
    Nov 2007
    پست ها
    546

    14

    با سلام

    طبق بحث دوستان اگر ما بخواهیم مورد جدید اضافه کنیم باید سطر جدید ایجاد کرده و به فرم دوم بفرستیم:

    1) فرض کنید که موردی که خواستیم درج کنیم قبلا در بانک موجود بوده است و طبیعتا عمل آپدیت انجام می شود. و این عمل در فرم اول در سطر جدید اتفاق می افتد

    2)هنگام درج منصرف شویم در این حالت هم یک سطر جدید به دیتا گرید اضافه شده است.

    چی کار باید کرد که این اتفاق نیفتد؟

  4. #34
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    هنگام درج منصرف شویم در این حالت هم یک سطر جدید به دیتا گرید اضافه شده است.
    چی کار باید کرد که این اتفاق نیفتد؟
    اول ببینیم شما درست منظورتان را رساندید و من درست متوجه شدم ...

    شما یک فرم گرایدی دارید (فرم اول) قرار است و یک فرم ویرایش فرمی و تک سطری دارید (فرم دوم) ...
    هر سطر گراید با عملی (شبیه دبل کلیک) در فرم ددم باز و آماده ویرایش میشود ...
    احتمالاً دکمه ای برای آیتم جدید در فرم اول دارید که با کلیک ان فرم دوم باز میشود و اطلاعات جدید را وارد میکند ...

    حالا میخواهید بتوانید عملیات آیتم جدید در فرم دوم را لغو و کنسل کنید؟
    درست متوجه شدم؟

    =====

    راه اول:
    خوب چه نیازی است اول datarow جدید را به datatable اضافه کنید و بعد فرم دوم را باز کنید؟
    datarow جدید را قبل از نمایش فرم دوم بسازید ولی َadd نکنید و به فرم دوم بفرستید ...
    اگر فرم دوم با DialogResult.OK بسته شده بود آنگاه در ادامه دستورات بعد از showdialog سطر جدید را به datatable اضافه و add کنید.

    راه دوم:
    راه سوم:
    با وجود راه اول گمانم نیازی به گفتن اینها نباشد!

    =====

    موفق باشید.

  5. #35
    پروفشنال
    تاريخ عضويت
    Nov 2007
    پست ها
    546

    14

    سلام

    اول ببینیم شما درست منظورتان را رساندید و من درست متوجه شدم ...

    شما یک فرم گرایدی دارید (فرم اول) قرار است و یک فرم ویرایش فرمی و تک سطری دارید (فرم دوم) ...
    هر سطر گراید با عملی (شبیه دبل کلیک) در فرم ددم باز و آماده ویرایش میشود ...
    احتمالاً دکمه ای برای آیتم جدید در فرم اول دارید که با کلیک ان فرم دوم باز میشود و اطلاعات جدید را وارد میکند ...

    حالا میخواهید بتوانید عملیات آیتم جدید در فرم دوم را لغو و کنسل کنید؟
    درست متوجه شدم؟

    =====

    راه اول:
    خوب چه نیازی است اول datarow جدید را به datatable اضافه کنید و بعد فرم دوم را باز کنید؟
    datarow جدید را قبل از نمایش فرم دوم بسازید ولی َadd نکنید و به فرم دوم بفرستید ...
    اگر فرم دوم با DialogResult.OK بسته شده بود آنگاه در ادامه دستورات بعد از showdialog سطر جدید را به datatable اضافه و add کنید.

    راه دوم:
    راه سوم:
    با وجود راه اول گمانم نیازی به گفتن اینها نباشد!

    =====

    موفق باشید.
    سلام از توجه شما بینهایت سپاسگزارم
    من این راه حلی که شما فرمودید پیدا کرده بودم ولی یادم رفته بود تاپیک رو ویرایش کنم
    ولی برای سوال اول راه حلی به ذهنم نرسیده !!!
    Last edited by shotok; 24-04-2010 at 20:36.

  6. #36
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    ولی برای سوال اول راه حلی به ذهنم نرسیده !!!
    لطفاً واضح تر بیان کنید.
    من متوجه سوالی نشدم! بنظرم جمله بیشتر خبری بوده تا پرسشی!

  7. #37
    پروفشنال
    تاريخ عضويت
    Nov 2007
    پست ها
    546

    14

    با سلام

    1) فرض کنید که موردی که خواستیم درج کنیم قبلا در بانک موجود بوده است و طبیعتا عمل آپدیت انجام می شود. و این عمل در فرم اول در سطر جدید اتفاق می افتد


    چی کار باید کرد که این اتفاق نیفتد؟
    با این که عمل آپدیت در بانک درست اتفاق می افتد ولی کاربر احساس می کند 2 تا سطر برای کاربر مذکور ایجاد شده است.

  8. #38
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    با این که عمل آپدیت در بانک درست اتفاق می افتد ولی کاربر احساس می کند 2 تا سطر برای کاربر مذکور ایجاد شده است.
    اگر مشکلتان را درست متوجه شده باشم (یا حتی نشده باشم!) شمکا میتوانید بعد از یک پایان یک Save موفقیت آمیز یک بارگذاری و Refresh دیتا ها را هم انجام دهید.
    اینکار مخصوصاً در برنامه های شبکه ای رایج است و بهانه ای است تا اطلاعات نمایشی روی فرم سینک و به روز شود و اخرین تغییرات و اضافه و کم شده و تغییر کرده های دیتابیس را (که شاید لحظاتی قبل توسط فرد دیگر در شبکه هم انجام شده باشد) روی فرم نشان دهد و فرم کاربر اخرین اطلاعات فعلی را نمایش دهد.

    موفق باشید.

  9. #39
    پروفشنال
    تاريخ عضويت
    Nov 2007
    پست ها
    546

    پيش فرض

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

    و یک سوال هم داشتم و اینکه Form1_Load(sender, e) با this.Refresh از نظر سرعت و عملکرد فرق دارن یا نه؟

    Last edited by shotok; 04-05-2010 at 05:45.

  10. #40
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    من این کار را انجام دادم با دستور this.Refresh . ولی اتفاقی نمیفتد
    Refresh دیتا نه ... !
    یعنی دیتاستتان را Clear کنید و مجدد آن را Fill کنید ...
    یکجایی در برنامه بالاخره می آیید و DataAdapter.Fill را انجام میدهید، درست است؟
    همانجا (برای اطمینان) قبلش یک DataSet.Clear هم قرار دهید و این متد را برای باز تولید و باز خوانی اطلاعات مجدد فراخوانی کنید.

    یک سوال هم داشتم و اینکه Form1_Load(sender, e) با this.Refresh از نظر سرعت و عملکرد فرق دارن یا نه؟
    این دو کلاً از نظر عملکرد متفاوت هستند و ربطی به هم ندارند.
    اولی رویدادی است که یکبار در زمان بارگذاری فرم اجرا میشود و دومی متدی است که نمایه دیداری و گرافیکی و layout فرم را باز تولید میکند.

    شب بخیر.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

برچسب های این موضوع

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •