تور لحظه آخری
امروز : یکشنبه ، 9 دی 1403    احادیث و روایات:  پیامبر اکرم (ص):هرگاه به نماز ايستادى، با دل به خدا رو كن تا او نيز به تو رو كند.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

اجاره سند در شیراز

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

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

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

خرید بلیط هواپیما

بلیط اتوبوس پایانه

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

خرید از چین

خرید از چین

تجهیزات کافی شاپ

کاشت ابرو طبیعی و‌ سریع

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

دوره آموزش باریستا

مهاجرت به آلمان

بهترین قالیشویی تهران

بورس کارتریج پرینتر در تهران

تشریفات روناک

نوار اخطار زرد رنگ

ثبت شرکت فوری

تابلو برق

خودارزیابی چیست

فروشگاه مخازن پلی اتیلن

قیمت و خرید تخت برقی پزشکی

کلینیک زخم تهران

خرید بیت کوین

خرید شب یلدا

پرچم تشریفات با کیفیت بالا و قیمت ارزان

کاشت ابرو طبیعی

پرواز از نگاه دکتر ماکان آریا پارسا

پارتیشن شیشه ای

اقامت یونان

خرید غذای گربه

رزرو هتل خارجی

تولید کننده تخت زیبایی

مشاوره تخصصی تولید محتوا

سی پی کالاف

دوره باریستا فنی حرفه ای

چاکرا

استند تسلیت

 






آمار وبسایت

 تعداد کل بازدیدها : 1846328780




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

دسترسی به فرم پدر؟


واضح آرشیو وب فارسی:سایت ریسک: M-B-M20-07-2008, 10:08 PM!!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! فرم جدید باز شده است حالا چگونه می توان به اشیای FrmMain دسترسی داشت (مثلا TxtId را در FrmMain مقدار دهی کرد) M-B-M21-07-2008, 03:25 PMلطفا اگر کسی یاد داره کمک کنه! _H2_22-07-2008, 12:21 AMسلام شما باید اشاره گر شی ای را که میخواهید به کلاسس مورد نظر پاس دهید. یکی یک متغییری از نوع FrmMain دررون FrmAddCustomr تعریف کرده باشید و این متغیر را مقدار دهی کنید. سپس میتوانید از ایمن متغییر برای دستکاری شی مربوطه اش استفاده کنید. ضمناً از نظر اصول برنامه نویسی، دسترسی یک فرم به کنترلرهای فرم دیگر صحیح نیست. M-B-M22-07-2008, 12:36 AMسلام شما باید اشاره گر شی ای را که میخواهید به کلاسس مورد نظر پاس دهید. یکی یک متغییری از نوع FrmMain دررون FrmAddCustomr تعریف کرده باشید و این متغیر را مقدار دهی کنید. سپس میتوانید از ایمن متغییر برای دستکاری شی مربوطه اش استفاده کنید. ضمناً از نظر اصول برنامه نویسی، دسترسی یک فرم به کنترلرهای فرم دیگر صحیح نیست. شما اگر که بخواهید از فرمی که باز کرده اید سه یا چهار خروجی داشته باشد و در فرم اولیه قرار دهید چکار می کنید؟ _H2_22-07-2008, 01:50 AMسلام گرچه خودم همین دیروز یک مثال از دسترسی به کنترلرهای روی فرمهای دیگر برای فردی در سایت دیگری گذاشتم ولی اگر از من میپرسید، و کد نویس من باشد، هیچ گاه، تحت هیچ شرایط اجازه دسترسی به کنترلرها را از خارج از کلاسس جاری نمیدهم. دلیلش هم ساده است، اصل نگه داری، که بر ضرورت شفاف بودن و قابل توصعه و ترمیم و تکمیل بودن و غیر اسپاگتی بودن کد تأکید میکند. اگر چند خروجی داشته باشید، نهایتش ان است که یک کلاسس واسط، مثل یک مخزن درست میکنید تا تمام آیتم ها را باز پس دهد و غیر نهایش را هم میتوانید در خود دات نت مشاهده کنید. شما حتماً تا حال از دیالوگ های OpenFile و SaveFile و Print و... یا InputBox و... استفاده کرده اید. در کدام مورد ویندوز و یا دات نت اجازه دسترسی به کنترلرها را به شما داده؟؟؟؟؟؟ ولی در عین حال میتوانید تمام آیتم ها و موارد دلخواه یک OpenFileDialog را به سلیقه خود ست کنید! خدا برکت بده به property ها! هر چندتا دوست دارید برای دریافت و بازپس دهی اطلاعات تعبیه کنید.!!!! M-B-M22-07-2008, 02:37 AMدوست عزیز من منظور شما را درست متوجه نشدم ببینید من دو تا فرم دارم FrmMain,FrmCustomer وقتی از داخل FrmMain فرم frmCustomer را باز میکنم، فرم FrmCustomer باید دارای 4 خروجی باشد (مثلا FName,LName,Id,Tel) این چهار مقدار را می خواهم در TextBox های مربوطه در FrmMain نمایش دهم. چکار باید بکنم این هم کل ماجرا _H2_23-07-2008, 10:58 AMسلام توجه کنید همین OpenFileDialog یک مشخصه با نام Filename داریم که به طور غیر مستقیم، شما را به کنترلرهای روی فرم وصل میکند. مثلاً در زبان #C شما میتوانید کدی مثل زیر را در فرم تان تعبیه کنید. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! یعنی به جای دسترسی به اشاره گر اصلی txtFirstName شما فقط اجازه دسترسی به خصوصیت Text آن را میدهد، آن هم به کمک خصوصیت واضح و پر معنی و گویای FirstName. یکی از کوچکترین خواص این کار قابلیت نگه داری بیشتر است، مثلاً لزوماً با کوچکترین تغییری در مبانی داخلی یک کلاسس، نیاز نیست کل کدهای برنامه اصلاح شود. همچنان میتوانید به جای تک فیلدها یک نوع DataRow واحد را هم بگیرید یا باز پس دهید. M-B-M24-02-2009, 01:27 AMسلام یک سئوال با محتوای متفاوت! من در فرم اول یک DataGride دارم که وقتی کاربر یک رکورد از آن را انتخاب می کند تمام اطلاعات این DtaGride در فرم دوم (فرم ویرایش) نمایش داده می شود و کاربر اطلاعات را ویرایش می کند. حال که تعداد این فیلد ها n عدد می باشد چگونه آنها را به فرم دوم بفرستم چون نمی توان در آن فرم n عدد Property تولید کرد! آیا می توان set || get را به حالتی تبدیل کرد که n حالت را یکجا بپذبرد؟ پیشنهاد شما چیست؟ _H2_25-02-2009, 12:56 AMسلام آیا می توان set || get را به حالتی تبدیل کرد که n حالت را یکجا بپذبرد؟ آیا این همان آرایه خودمان نمیشود؟! شما به راحتی میتوانید یک System.Data.DataRow و یا یک آرایه را به فرم دوم تحویل بدهید. M-B-M26-02-2009, 03:26 PMسلام لطفا در مورد طریقه ساخت DateRow و طریقه بکار گیری آن توضیح بفرمایید؟(مقدار دهی به آن و مقدار گیری از آن (فیلدهایی از نوع Int,String,...)) ممنون M-B-M28-02-2009, 01:05 PMسلام یک سوال کلی: من در فرم اول یک DataGride دارم که وقتی کاربر یک رکورد از آن را انتخاب می کند تمام اطلاعات این DtaGride در فرم دوم (فرم ویرایش) نمایش داده می شود و کاربر اطلاعات را ویرایش می کند. این n فیلد را چگونه به فرم دوم بفرستم؟ پیشنهادات: 1. تمام TextBoxهایی که در فرم دوم قرار است اطلاعات را نمایش دهد را Public کنم و از فرم اول آنها را مقدار دهی کنم 2. یک آرایه Public از نوع String در فرم دوم ایجاد کنم و تمام خانه های آن را مقدار دهی کنم و در رویداد Load فرم دوم مقادیر این آرایه را در TextBoxها بریزم 3. Id فردی که انتخاب شده است را به فرم دوم بفرستم و در رویداد Load فرم دوم از دیتابیس مقادیر را بخوانم و در TextBoxها وارد کنم 4. ... شما از چه روشی استفاده میکنید؟ پبشنهاد شما چیست؟ am_merman0101-03-2009, 12:34 AMبا سلام خدمت دوستان عزیز ببخشید که پا برهنه می پرم وسط حرف بزرگتر ها. دوست عزیز من فکر میکنم (البته من خیلی کم تجربه و تازه کارم) که اصلا از خیر فرم دوم بگذری و اطلاعات رو توی همون فرم اول دستکاری کنی. دوم اینکه به نظر من اگه اطلاعات رو به طور مستقیم از بانک داده بگیری و ادیت کنی و دوباره به بانک داده بفرستی کار منطقی تری هستش چون شما به هر حال باید بعد از ارسال اطلاعات به فرم اول باید بانک داده رو به روز آوری کنی پس چه بهتر که این کار بی واسطه انجام بشه . البته اگه فرمان های مربوط به دریافت اطلاعات و همچنین فرمان های مربوط به به روز رسانی اطلاعات رو در یک کلاس جداگانه تعریف کنی کلا کارت راحت میشه و از هر فرمی که دلت میخواد میتونی بی واسطه به بانک داده دسترسی داشته باشی و در این صورد در نهایت شاید فقط لازم باشه که یک یا دو متغیر رو بین فرم هات به اشتراک بزاری و این طوری خوانایی برنامه هم بسیار بالا میره. _H2_01-03-2009, 10:25 AMسلام لطفا در مورد طریقه ساخت DateRow و طریقه بکار گیری آن توضیح بفرمایید؟(مقدار دهی به آن و مقدار گیری از آن (فیلدهایی از نوع Int,String,...)) به طور معمول یک DataRow تکی قابل تولید نیست، یعنی باید یک DataTable داشته باشید که از اعضای Rows آن استفاده کنید و یا یک NewRow بسازید. یعنی با کدهای شبیه این قابل به دست آوردن است... !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! و با کدهایی شبیه این قابل دسترسی و ویرایش است. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! من در فرم اول یک DataGride دارم که وقتی کاربر یک رکورد از آن را انتخاب می کند تمام اطلاعات این DtaGride در فرم دوم (فرم ویرایش) نمایش داده می شود و کاربر اطلاعات را ویرایش می کند. این n فیلد را چگونه به فرم دوم بفرستم؟ 1. ... 2. ... 3. ... 1) بدترین راه ممکن! 2) اگر تمام فیلدها از یک نوع باشند شاید قابل قبول باشد. 3) بد نیست ولی یک خواندن در فرم دوم میخواهد و یکی هم در فرم اول، برای سرعت بهتر است انجام نشود. شما از چه روشی استفاده میکنید؟ پبشنهاد شما چیست؟ من اگر میخواستم در یک فرم دیگر این کار را انجام دهم و شرایط شما را داشتم بدون شک از همین DataRow استفاده میکردم. چون حتماً منبع تغذیه Grid شما یک DataTable است؟ با فرستادن سطر DataRow نظیر در DataTable، ضمن اینکه همه فیلدها را فرستاده اید، اگر در فرم دوم ویرایشی روی DataRow انجام دهید یا متد Delete آن را (نظیر یک دکمه "حذف" روی فرم دوم) اجرا کنید در هر دو صورت بدون کد و کار اضافه ای تغییرات در گراید در همان لحظه اعمال خواهد شد. موفق باشید. M-B-M01-03-2009, 01:45 PMسلام من یک متغیر Public در فرم دوم تعریف کردم FrmCustomer public System.Data.DataRow Dr; بعد زمانی که کاربر یک نفر را از DataGride انتخاب می کند با این دستور اطلاعات را از فرم اول به فرم دوم میفرستم FrmShowCustomer FC.Dr = markazDBDataSet.Customer.Rows[0]; سپس در رویداد Load فرم دوم textBox ها را مقدار دهی می کنم TxtId.Text = Dr["CoId"].ToString(); TxtFName.Text = Dr["FName"].ToString(); TxtLName.Text = Dr["LName"].ToString(); . حال: 1. چگونه فرد انتخاب شده را به فرم دوم بفرستم (بجای 0 چه چیزی بنویسم؟) FC.Dr = markazDBDataSet.Customer.Rows[0]; 2. دستورات مقدار دهی به TextBoxها را در رویداد Load فرم نوشته ام. اگر تعداد این دستورات زیاد باشد، سرعت اجرای برنامه گرفته نمی شود؟ _H2_02-03-2009, 11:44 PMسلام من یک متغیر Public در فرم دوم تعریف کردم بله از روشهای قبلیتان بهتر است و قابل بهتر شدن هم است... . دستورات مقدار دهی به TextBoxها را در رویداد Load فرم نوشته ام. اگر تعداد این دستورات زیاد باشد، سرعت اجرای برنامه گرفته نمی شود؟ تمام فیلدهای شما متنی است؟ نه مشکل خاصی ندارد... معمولاً جاهایی سرعت کم میشود که کاری در حلقه به تعداد مکرر انجام شود. . چگونه فرد انتخاب شده را به فرم دوم بفرستم (بجای 0 چه چیزی بنویسم؟) یک کامپونت BindingSource روی فرمتان قرار دهید و DataSource و DataMember اش را تایین کنید. سپس خود این BindingSource را به عنوان Source به Grid بدهید. حال هر زمان سطرجاری فعال در گراید را میخواهید با دستور زیر قابل تحصیل است: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! M-B-M03-03-2009, 01:42 AMروشهای قبلیتان بهتر است و قابل بهتر شدن هم است... لطفا راه حل بهتر آن را نیز بفرمایید! تمام فیلدهای شما متنی است؟ منظور شما چیست؟ فیلدهای معمولی مثل Id,FName,LName,... که در TextBox ها نمایش داده می شود! _H2_04-03-2009, 11:44 AMsghl لطفا راه حل بهتر آن را نیز بفرمایید! اگر من بودم و فقط همین یک DataRow را برای انتقال داشتم، کد زیر را از نظرهای مختلف ترجیح میدادم. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! (البته من کد فوق را ساده کرده ام، ولی شما فراموش نکنید در شرایط خاص امکان دارد مقادیر null باشند و شما باید این شرط را همواره در کدنویسی های خود مدنظر داشته باشید و برای آن if های مطلوبی قرار دهید.) منظور شما چیست؟ فیلدهای معمولی مثل Id,FName,LName,... که در TextBox ها نمایش داده می شود! خوب برای فیلدهای متنی TextBox مناسب است برای فیلدهای عددی NumericUpDown ... برای فیلدهای تاریخی یک کنترلر تاریخی فارسی ... برای فیلدی حاوی یک تصویر یک PictureBox با چند دکمه و راست کلیک ... و ... موفق باشید. M-B-M06-03-2009, 02:15 PMسلام زمانی که فرم2 برای ویرایش اطلاعات باز میشود از این دستورات استفاده میشود(یعنی با این دستورات این سطر را به فرم دوم میفرستیم) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! و پس از آن مقدار ها را نمایش می دهم اما زمانی که فرم دوم برای ثبت یک مشتری جدید باز میشود باید چکار کنم؟ آیا باید از این دستور استفاده کنم؟ !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! چگونه در فرم دوم تعیین کنم که این فرم برای ویرایش اطلاعات بازشده است یا برای ثبت اطلاعات جدید؟ _H2_06-03-2009, 03:13 PMسلام اینکه خیلی ساده است!!!!! برای دکمه های OK/Save و Cancel/Exit در فرم ویرایشی دوم خصیصه DialogResult را پر کنید. و در رویداد OK/Save مقادیر کنترلرها را داخل m_DataRow بریزید. در واقع فرق برای update و insert نخواهد داشت! و فرم اول باید دستورات مختلفی اجرا کند. دستور Update در فرم اول چنین خواهد شد: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! دستور Insert در فرم اول هم چنین خواهد شد: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! این نمونه ای از تعامل منطقی دو فرم است، که هیچیک به متغییرها و کنترلرهای یکدیگر دسترسی ندارند و هر کدام در داخل کد خود مستقل هستند و با انجام تغییرات داخل Form1 و Form2 کد دیگری نیاز به تغییر خاصی نخواهد داشت و این از اصول برنامه نویسی است و قابلیت "نگه داری کد" را به شدت افزایش میدهد و از پیدایش کدهای اسپاگتی مانند جلوگیری میکند. (مجدداً تاکید میکنم null بودن مقادیر را بررسی کنید) موفق باشید. M-B-M07-03-2009, 12:45 AMسلام ممنون از پاسخ شما اما شرمنده، منظور بنده را متوجه نشدید! ببینید من این دستورات را در فرم دوم نوشته ام !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! فرم دوم دو حالت برای باز شدن دارد 1. حالت اضافه کردن (اطلاعاتی لازم نیست به این فرم فرستاده شود) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! 2. حالت ویرایش (اطلاعات یک سطر باید به این فرم فرستاده شود) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! برای حالتی که فرم برای ویرایش اطلاعات باز میشود دستورات بالا باید اجرا شود اما برای حالتی که فرم برای ثبت اطلاعات جدید باز میشود این دستورات نباید اجرا شود! این دو حالت را چگونه می توان تفکیک کرد؟ چون برای حالت اول این دستورات با خطا مواجه میشود! باز هم شرمنده!!! راستی منظور شما از چک کردن Null بودن مقادیر چیست؟ آیا این دستور مشکلی دارد؟ TxtFName.Text = dr["FName"].ToString(); این فیلد یا مقدار دارد یا ندارد!!! اگر مقدار داشته باشد مقدار آن نمایش داده می شود و اگر مقدار نداشته باش چیزی نمایش داده نمی شود! _H2_07-03-2009, 01:41 AMسلام چون برای حالت اول این دستورات با خطا مواجه میشود! اگر دستورات فرم دوم شما کامل و دقیق بودند، نباید خطایی پیش می آمد! شما در هر صورت و حتی زمان Insert هم بحرحال باید یک DataRow به فرم دوم ارسال کنید! تا فرم دوم بتواند این DataRow را با مقادیر ورودی کاربر پر کند. ============== دستور فرم دوم شما باید چنین باشد... !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! ============== آیا این دستور مشکلی دارد؟ TxtFName.Text = dr["FName"].ToString(); تابع ConvertToString نوشته شده در فوق اطمینان بیشتری به همراه دارد. اگر مقدار داشته باشد مقدار آن نمایش داده می شود و اگر مقدار نداشته باش چیزی نمایش داده نمی شود! اگر مقدار یک فیلد null باشد و شما متد ToString را روی آن اجرا کنید با خطای زمان اجرا روبرو میشود. البته این وضعیت در فیلدهای دیتابیس خیلی بعید است، چون اغلب موارد به جای null حاوی DBNull هستند که مشکلی ایجاد نمیکند ولی کار از محکم کاری عیب نمیکند! (محکم کاری میتواند ضامن آبرو حرفه ای شما در حین آزمایش عملی برنامه جلو مشتری باشد!!!) ============== راستی منظور شما از چک کردن Null بودن مقادیر چیست؟ دستور Update در فرم اول چنین خواهد شد: (با شرایط محکم کاری!) (یعنی من اگر بودم کدی شبیه این مینوشتم!) !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! دستور Insert در فرم اول هم، همان آخرین کد خوب است و ایراد خاصی ندارد. (دیگر فرض میکنیم در هیچ زمان امکان ندارد datatablename و BindingSource1 بتوانند خالی و null باشند.) ضمنا سعی کنید از دستور using هم بیشتر استفاده کنید! ============== این دو حالت را چگونه می توان تفکیک کرد؟ فرم دوم شما نیاز ندارد تفاوت این دو حالت را بداند و در هر صورت باید یک DataRow صحیح تحویل بگیرد (نباید null بفرستید) تا بعد از کلیک دکمه OK/Save تغییرات را در DataRow اعمال کند. (در هر دو صورت Update و Insert) و با کدهای فوق دیگر مشکلی نباید داشته باشید. ولی اگر خیلی اصرار دارید این حالت را به فرم دوم اطلاع دهید تنا کد خاص دیگری را اجرا کنید، میتوانید بعد از DataRow یک پارامتر bool هم ارسال کنید که این دو حالت را از هم تمیز دهد. ============== موفق باشید. M-B-M08-03-2009, 01:27 AMسلام شرمنده من اینقدر سئوال میپرسم! چندتا سئوال کوچیک دیگه! اول: ضمنا سعی کنید از دستور using هم بیشتر استفاده کنید! چرا؟ مثلا تفاوت بین این دستور شما با دستور من چیست؟ !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! دوم: تفاوت این دستور شما با دستور من چیست؟ چرا همه جا از دستور This استفاده کرده اید؟ !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! سوم: با فرستادن سطر DataRow نظیر در DataTable، ضمن اینکه همه فیلدها را فرستاده اید، اگر در فرم دوم ویرایشی روی DataRow انجام دهید یا متد Delete آن را (نظیر یک دکمه "حذف" روی فرم دوم) اجرا کنید در هر دو صورت بدون کد و کار اضافه ای تغییرات در گراید در همان لحظه اعمال خواهد شد. یعنی برای Delete چه چیزی بنویسم؟ برای Edit چه چیزی بنویسم؟ من برای Ins,Upd,Del هر کدام یک StoredProcedure درست کرده ام و از آنها استفاده می کنم. شما میفرمایید از آنها استفاده نکنم؟ این روش چه مزیتی نسبت به کار با Sp ها دارد؟ چهارم: فرم دوم توسط دو جدول پر میشود جدول1: مشخصات مشتری شامل فیلد کلید، نام، نام خانوادگی، ... جدول2: جدول تلفن شامل فیلد کلید، تلفن1، تلفن2، ... طبق راهنمایی شما من سطر انتخاب شده توسط DataGride که DataSource آن روی جدول اول تنظیم شده است را به فرم دوم میفرستم، حال چگونه اطلاعات جدول دوم را نیز به آن بفرستم؟(در فرم دوم یک ListBox وجود دارد که تلفنهای ثبت شده این فرد در آن نمایش داده میشود) ممنون از پاسخ های شما واقعا شرمنده من اینقدر شما را اذیت می کنم _H2_09-03-2009, 01:32 AMسلام ... using ... چرا؟ مثلا تفاوت بین این دستور شما با دستور من چیست؟ forum.p30world.com/showthread.php?p=1556644#post1556644 چرا همه جا از دستور This استفاده کرده اید؟ this در هر زمان و در هر کلاس به همان کلاسی که داخلش هستیم اشاره میکند (معادلش در VB لغت Me است) در بیشتر مواردی که در کدهای من دیده اید، برای مشخص کردن شی مالک اشیا بوده... در واقع به نظر من خوانایی را به شدت افزایش میدهد. مثلاً وقتی همینطوری مینویسید BindingSource1.Current این تردید به وجود می آید که BindingSource1 یک متغییر محلی است؟ پارامتری است که به تابع پاس داده شده؟ یک شی static عمومی و همگانی است؟ یا یک شی است که در سطح مالزول تعریف شده؟ ولی this.BindingSource1.Current تمام شک و تردیدها را برطرف میکند و کامللاً مشخص است که شی مذکور غیر static است و در سطح مازول کلاس جاری که در آن هستیم تعریف شده. دریافت سریع و با یک نگاه این مطلب ضمن افزایش خوانایی و نیاز کمتر به توضیح نویسی، جلوی برخی اشتباه هات و خطاها را میگیرد و میتواند سرعت کد نویسی را افزایش دهد (فوراً متوجه میشوم که میتوانم این شی را در تمام توابع دیگر همان کلاس هم استفاده کنم و حق استفاده از ان را در متدهای static ندارم) ضمن اینکه در زمان تایپ نام وارد کردن this و زدن نقطه لیست مقادیر مجاز همین حوزه نشان داده میشود که محدوده کوچکتری است و سریعتر میتوان نام مورد نظر را در ان یافت. چرا همه جا از دستور This استفاده کرده اید؟ ;(f.ShowDialog(this ولی دستور فوق کمی فرق داردف وقتی میخواهید یک فرم دیگر را باز کنید میتوانید یک فرم را به عنوان مالک آن فرم معرفی کنید... وچون برنامه شما در طی دو فرم و یک ریسمان اجرا میشود نوشتن this و ننوشتن ان برای متد ShowDialog تفاوتی ایجاد نمیکند ولی با این وجود باز هم ضمن افزایش خوانایی کد هم محکمتر خواهد شد و مثلاً اگر بعداً برنامه چند را یک دفعه چند ریسمانی هم کنید باز مالک فرم به درستی حفظ خواهد شد. یعنی برای Delete چه چیزی بنویسم؟ !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! برای Edit چه چیزی بنویسم؟ !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! من برای Ins,Upd,Del هر کدام یک StoredProcedure درست کرده ام و از آنها استفاده می کنم. شما میفرمایید از آنها استفاده نکنم؟ این روش چه مزیتی نسبت به کار با Sp ها دارد؟ کاملاً بد متوجه شدید! این روشها و کدها آفلاین است و فقط در سطح DataSet و DataTable اعمال میشود و در گراید قابل مشاهده است... در نهایت برای اعمال قطعی انها در دیتابیس باید از DataAdapter و متد Update استفاده کنید. مثل متد Fill که استفاده کرده اید و دیتاها را از دیتابیس خوانده و در DataSet ذخیره کرده... حالا DSataSet آفلاین استف شما میتوانید چیزی از آن حذف و اضافه و تغییر دهید و بعد با متد Update برعکس Fill عمل کنید و دیتابیس را آپدیت کنید. استفاده از SP ها بسیار منطقی است، شما میتوانید در فرامین Update و Insert و Delete در DataAdapter از SP ها استفاده کنید تا DataAdapter.Update بر اساس آن کار کند. ( با این یک سوال من متوجه شدم که احتمالاً کمی پایه ای مشکل دارید ... پیشنهاد میکنم کتاب یا جزوه ای در خصوص ADO.Net را حتماً مطالعه کنید تا اصول دیتابیس را در دات نت پایه ای یادبگیرید و مشکلتان برای همیشه ریشه کن و حل شود، چون بحرحال من هر چه توضیح دهم نمیتوانم اندازه یک کتاب 100 یا 300 صفحه ای توضیح دهم و کتاب فضا و امکانات بیشتری برای شرح و بست دارد. ) طبق راهنمایی شما من سطر انتخاب شده توسط DataGride که DataSource آن روی جدول اول تنظیم شده است را به فرم دوم میفرستم، حال چگونه اطلاعات جدول دوم را نیز به آن بفرستم؟(در فرم دوم یک ListBox وجود دارد که تلفنهای ثبت شده این فرد در آن نمایش داده میشود) یعنی یک فرم شماف همزمان دو جدول را ویرایش میکند؟ خوب اطلاعات مورد نیاز دیگر را هم مثل همان DataRow بفرستید! موفق باشید. M-B-M11-03-2009, 01:36 AMسلام با این یک سوال من متوجه شدم که احتمالاً کمی پایه ای مشکل دارید ... پیشنهاد میکنم کتاب یا جزوه ای در خصوص ADO.Net ... به توصیه شما در مورد Ado یک فایل Pdf حدود 200 صفحه ای را مطالعه کردم (ممنون از توصیه بجا و عالی شما)! حالا چند تا سئوال دارم؟ 1. من برای Ins,Upd,Del هر کدام یک StoredProcedure درست کرده ام و از آنها استفاده می کنم. شما میفرمایید از آنها استفاده نکنم؟ این روش چه مزیتی نسبت به کار با Sp ها دارد؟ زمانی که این دستور را استفاده میکنیم !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! مگر اطلاعات در DataSet (دیتابیس مجازی یا آفلاین) قرار نمیگیرد و برای تثبیت ان در دیتابیس از دستور !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! نباید استفاده کرد؟ و برای Delete از !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! استفاده کنم؟ و ... خوب، با این کار Sp های Ins,Upd,Del که برای تمام جدولها نوشته ام دیگر کاربردی ندارد! در حالی که شما در پاسخ به سئوال من فرموده بودید که کاملاً بد متوجه شدید! 2. سئوال دوم در مورد دستور Using: منظور شما را از 1- چون سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 2308]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن