مشاهده نسخه کامل
: دسترسی به فرم پدر؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
فرم جدید باز شده است حالا چگونه می توان به اشیای FrmMain دسترسی داشت (مثلا TxtId را در FrmMain مقدار دهی کرد)
لطفا اگر کسی یاد داره کمک کنه!
سلام
شما باید اشاره گر شی ای را که میخواهید به کلاسس مورد نظر پاس دهید.
یکی یک متغییری از نوع FrmMain دررون FrmAddCustomr تعریف کرده باشید و این متغیر را مقدار دهی کنید.
سپس میتوانید از ایمن متغییر برای دستکاری شی مربوطه اش استفاده کنید.
ضمناً از نظر اصول برنامه نویسی، دسترسی یک فرم به کنترلرهای فرم دیگر صحیح نیست.
سلام
شما باید اشاره گر شی ای را که میخواهید به کلاسس مورد نظر پاس دهید.
یکی یک متغییری از نوع FrmMain دررون FrmAddCustomr تعریف کرده باشید و این متغیر را مقدار دهی کنید.
سپس میتوانید از ایمن متغییر برای دستکاری شی مربوطه اش استفاده کنید.
ضمناً از نظر اصول برنامه نویسی، دسترسی یک فرم به کنترلرهای فرم دیگر صحیح نیست.
شما اگر که بخواهید از فرمی که باز کرده اید سه یا چهار خروجی داشته باشد و در فرم اولیه قرار دهید چکار می کنید؟
سلام
گرچه خودم همین دیروز یک مثال از دسترسی به کنترلرهای روی فرمهای دیگر برای فردی در سایت دیگری گذاشتم ولی اگر از من میپرسید، و کد نویس من باشد، هیچ گاه، تحت هیچ شرایط اجازه دسترسی به کنترلرها را از خارج از کلاسس جاری نمیدهم.
دلیلش هم ساده است، اصل نگه داری، که بر ضرورت شفاف بودن و قابل توصعه و ترمیم و تکمیل بودن و غیر اسپاگتی بودن کد تأکید میکند.
اگر چند خروجی داشته باشید، نهایتش ان است که یک کلاسس واسط، مثل یک مخزن درست میکنید تا تمام آیتم ها را باز پس دهد و غیر نهایش را هم میتوانید در خود دات نت مشاهده کنید.
شما حتماً تا حال از دیالوگ های OpenFile و SaveFile و Print و... یا InputBox و... استفاده کرده اید.
در کدام مورد ویندوز و یا دات نت اجازه دسترسی به کنترلرها را به شما داده؟؟؟؟؟؟
ولی در عین حال میتوانید تمام آیتم ها و موارد دلخواه یک OpenFileDialog را به سلیقه خود ست کنید!
خدا برکت بده به property ها! هر چندتا دوست دارید برای دریافت و بازپس دهی اطلاعات تعبیه کنید.!!!!
دوست عزیز من منظور شما را درست متوجه نشدم
ببینید
من دو تا فرم دارم FrmMain,FrmCustomer وقتی از داخل FrmMain فرم frmCustomer را باز میکنم، فرم FrmCustomer باید دارای 4 خروجی باشد (مثلا FName,LName,Id,Tel) این چهار مقدار را می خواهم در TextBox های مربوطه در FrmMain نمایش دهم.
چکار باید بکنم
این هم کل ماجرا
سلام
توجه کنید همین OpenFileDialog یک مشخصه با نام Filename داریم که به طور غیر مستقیم، شما را به کنترلرهای روی فرم وصل میکند.
مثلاً در زبان #C شما میتوانید کدی مثل زیر را در فرم تان تعبیه کنید.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یعنی به جای دسترسی به اشاره گر اصلی txtFirstName شما فقط اجازه دسترسی به خصوصیت Text آن را میدهد، آن هم به کمک خصوصیت واضح و پر معنی و گویای FirstName.
یکی از کوچکترین خواص این کار قابلیت نگه داری بیشتر است، مثلاً لزوماً با کوچکترین تغییری در مبانی داخلی یک کلاسس، نیاز نیست کل کدهای برنامه اصلاح شود.
همچنان میتوانید به جای تک فیلدها یک نوع DataRow واحد را هم بگیرید یا باز پس دهید.
سلام
یک سئوال با محتوای متفاوت!
من در فرم اول یک DataGride دارم که وقتی کاربر یک رکورد از آن را انتخاب می کند تمام اطلاعات این DtaGride در فرم دوم (فرم ویرایش) نمایش داده می شود و کاربر اطلاعات را ویرایش می کند. حال که تعداد این فیلد ها n عدد می باشد چگونه آنها را به فرم دوم بفرستم چون نمی توان در آن فرم n عدد Property تولید کرد!
آیا می توان set || get را به حالتی تبدیل کرد که n حالت را یکجا بپذبرد؟
پیشنهاد شما چیست؟
سلام
آیا می توان set || get را به حالتی تبدیل کرد که n حالت را یکجا بپذبرد؟
آیا این همان آرایه خودمان نمیشود؟!
شما به راحتی میتوانید یک System.Data.DataRow و یا یک آرایه را به فرم دوم تحویل بدهید.
سلام
لطفا در مورد طریقه ساخت DateRow و طریقه بکار گیری آن توضیح بفرمایید؟(مقدار دهی به آن و مقدار گیری از آن (فیلدهایی از نوع Int,String,...))
ممنون
سلام
یک سوال کلی:
من در فرم اول یک DataGride دارم که وقتی کاربر یک رکورد از آن را انتخاب می کند تمام اطلاعات این DtaGride در فرم دوم (فرم ویرایش) نمایش داده می شود و کاربر اطلاعات را ویرایش می کند.
این n فیلد را چگونه به فرم دوم بفرستم؟
پیشنهادات:
1. تمام TextBoxهایی که در فرم دوم قرار است اطلاعات را نمایش دهد را Public کنم و از فرم اول آنها را مقدار دهی کنم
2. یک آرایه Public از نوع String در فرم دوم ایجاد کنم و تمام خانه های آن را مقدار دهی کنم و در رویداد Load فرم دوم مقادیر این آرایه را در TextBoxها بریزم
3. Id فردی که انتخاب شده است را به فرم دوم بفرستم و در رویداد Load فرم دوم از دیتابیس مقادیر را بخوانم و در TextBoxها وارد کنم
4. ...
شما از چه روشی استفاده میکنید؟
پبشنهاد شما چیست؟
am_merman01
01-03-2009, 00:34
با سلام خدمت دوستان عزیز
ببخشید که پا برهنه می پرم وسط حرف بزرگتر ها.
دوست عزیز من فکر میکنم (البته من خیلی کم تجربه و تازه کارم) که اصلا از خیر فرم دوم بگذری و اطلاعات رو توی همون فرم اول دستکاری کنی.
دوم اینکه به نظر من اگه اطلاعات رو به طور مستقیم از بانک داده بگیری و ادیت کنی و دوباره به بانک داده بفرستی کار منطقی تری هستش چون شما به هر حال باید بعد از ارسال اطلاعات به فرم اول باید بانک داده رو به روز آوری کنی پس چه بهتر که این کار بی واسطه انجام بشه .
البته اگه فرمان های مربوط به دریافت اطلاعات و همچنین فرمان های مربوط به به روز رسانی اطلاعات رو در یک کلاس جداگانه تعریف کنی کلا کارت راحت میشه و از هر فرمی که دلت میخواد میتونی بی واسطه به بانک داده دسترسی داشته باشی و در این صورد در نهایت شاید فقط لازم باشه که یک یا دو متغیر رو بین فرم هات به اشتراک بزاری و این طوری خوانایی برنامه هم بسیار بالا میره.
سلام
لطفا در مورد طریقه ساخت DateRow و طریقه بکار گیری آن توضیح بفرمایید؟(مقدار دهی به آن و مقدار گیری از آن (فیلدهایی از نوع Int,String,...))
به طور معمول یک DataRow تکی قابل تولید نیست، یعنی باید یک DataTable داشته باشید که از اعضای Rows آن استفاده کنید و یا یک NewRow بسازید.
یعنی با کدهای شبیه این قابل به دست آوردن است...
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و با کدهایی شبیه این قابل دسترسی و ویرایش است.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من در فرم اول یک DataGride دارم که وقتی کاربر یک رکورد از آن را انتخاب می کند تمام اطلاعات این DtaGride در فرم دوم (فرم ویرایش) نمایش داده می شود و کاربر اطلاعات را ویرایش می کند.
این n فیلد را چگونه به فرم دوم بفرستم؟
1. ...
2. ...
3. ...
1) بدترین راه ممکن!
2) اگر تمام فیلدها از یک نوع باشند شاید قابل قبول باشد.
3) بد نیست ولی یک خواندن در فرم دوم میخواهد و یکی هم در فرم اول، برای سرعت بهتر است انجام نشود.
شما از چه روشی استفاده میکنید؟ پبشنهاد شما چیست؟
من اگر میخواستم در یک فرم دیگر این کار را انجام دهم و شرایط شما را داشتم بدون شک از همین DataRow استفاده میکردم.
چون حتماً منبع تغذیه Grid شما یک DataTable است؟
با فرستادن سطر DataRow نظیر در DataTable، ضمن اینکه همه فیلدها را فرستاده اید، اگر در فرم دوم ویرایشی روی DataRow انجام دهید یا متد Delete آن را (نظیر یک دکمه "حذف" روی فرم دوم) اجرا کنید در هر دو صورت بدون کد و کار اضافه ای تغییرات در گراید در همان لحظه اعمال خواهد شد.
موفق باشید.
سلام
من یک متغیر 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 فرم نوشته ام. اگر تعداد این دستورات زیاد باشد، سرعت اجرای برنامه گرفته نمی شود؟
سلام
من یک متغیر Public در فرم دوم تعریف کردم
بله از روشهای قبلیتان بهتر است و قابل بهتر شدن هم است...
. دستورات مقدار دهی به TextBoxها را در رویداد Load فرم نوشته ام. اگر تعداد این دستورات زیاد باشد، سرعت اجرای برنامه گرفته نمی شود؟
تمام فیلدهای شما متنی است؟
نه مشکل خاصی ندارد... معمولاً جاهایی سرعت کم میشود که کاری در حلقه به تعداد مکرر انجام شود.
. چگونه فرد انتخاب شده را به فرم دوم بفرستم (بجای 0 چه چیزی بنویسم؟)
یک کامپونت BindingSource روی فرمتان قرار دهید و DataSource و DataMember اش را تایین کنید.
سپس خود این BindingSource را به عنوان Source به Grid بدهید.
حال هر زمان سطرجاری فعال در گراید را میخواهید با دستور زیر قابل تحصیل است:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
روشهای قبلیتان بهتر است و قابل بهتر شدن هم است...
لطفا راه حل بهتر آن را نیز بفرمایید!
تمام فیلدهای شما متنی است؟
منظور شما چیست؟
فیلدهای معمولی مثل Id,FName,LName,... که در TextBox ها نمایش داده می شود!
sghl
لطفا راه حل بهتر آن را نیز بفرمایید!
اگر من بودم و فقط همین یک DataRow را برای انتقال داشتم، کد زیر را از نظرهای مختلف ترجیح میدادم.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
(البته من کد فوق را ساده کرده ام، ولی شما فراموش نکنید در شرایط خاص امکان دارد مقادیر null باشند و شما باید این شرط را همواره در کدنویسی های خود مدنظر داشته باشید و برای آن if های مطلوبی قرار دهید.)
منظور شما چیست؟
فیلدهای معمولی مثل Id,FName,LName,... که در TextBox ها نمایش داده می شود!
خوب برای فیلدهای متنی TextBox مناسب است
برای فیلدهای عددی NumericUpDown ...
برای فیلدهای تاریخی یک کنترلر تاریخی فارسی ...
برای فیلدی حاوی یک تصویر یک PictureBox با چند دکمه و راست کلیک ...
و ...
موفق باشید.
سلام
زمانی که فرم2 برای ویرایش اطلاعات باز میشود از این دستورات استفاده میشود(یعنی با این دستورات این سطر را به فرم دوم میفرستیم)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و پس از آن مقدار ها را نمایش می دهم
اما زمانی که فرم دوم برای ثبت یک مشتری جدید باز میشود باید چکار کنم؟
آیا باید از این دستور استفاده کنم؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
چگونه در فرم دوم تعیین کنم که این فرم برای ویرایش اطلاعات بازشده است یا برای ثبت اطلاعات جدید؟
سلام
اینکه خیلی ساده است!!!!!
برای دکمه های OK/Save و Cancel/Exit در فرم ویرایشی دوم خصیصه DialogResult را پر کنید.
و در رویداد OK/Save مقادیر کنترلرها را داخل m_DataRow بریزید.
در واقع فرق برای update و insert نخواهد داشت! و فرم اول باید دستورات مختلفی اجرا کند.
دستور Update در فرم اول چنین خواهد شد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دستور Insert در فرم اول هم چنین خواهد شد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این نمونه ای از تعامل منطقی دو فرم است، که هیچیک به متغییرها و کنترلرهای یکدیگر دسترسی ندارند و هر کدام در داخل کد خود مستقل هستند و با انجام تغییرات داخل Form1 و Form2 کد دیگری نیاز به تغییر خاصی نخواهد داشت و این از اصول برنامه نویسی است و قابلیت "نگه داری کد" را به شدت افزایش میدهد و از پیدایش کدهای اسپاگتی مانند جلوگیری میکند.
(مجدداً تاکید میکنم null بودن مقادیر را بررسی کنید)
موفق باشید.
سلام
ممنون از پاسخ شما اما شرمنده، منظور بنده را متوجه نشدید!
ببینید من این دستورات را در فرم دوم نوشته ام
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
فرم دوم دو حالت برای باز شدن دارد
1. حالت اضافه کردن (اطلاعاتی لازم نیست به این فرم فرستاده شود)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
2. حالت ویرایش (اطلاعات یک سطر باید به این فرم فرستاده شود)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای حالتی که فرم برای ویرایش اطلاعات باز میشود دستورات بالا باید اجرا شود اما برای حالتی که فرم برای ثبت اطلاعات جدید باز میشود این دستورات نباید اجرا شود!
این دو حالت را چگونه می توان تفکیک کرد؟
چون برای حالت اول این دستورات با خطا مواجه میشود!
باز هم شرمنده!!!
راستی منظور شما از چک کردن Null بودن مقادیر چیست؟
آیا این دستور مشکلی دارد؟
TxtFName.Text = dr["FName"].ToString();
این فیلد یا مقدار دارد یا ندارد!!!
اگر مقدار داشته باشد مقدار آن نمایش داده می شود و اگر مقدار نداشته باش چیزی نمایش داده نمی شود!
سلام
چون برای حالت اول این دستورات با خطا مواجه میشود!
اگر دستورات فرم دوم شما کامل و دقیق بودند، نباید خطایی پیش می آمد!
شما در هر صورت و حتی زمان 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 هم ارسال کنید که این دو حالت را از هم تمیز دهد.
==============
موفق باشید.
سلام
شرمنده من اینقدر سئوال میپرسم!
چندتا سئوال کوچیک دیگه!
اول:
ضمنا سعی کنید از دستور using هم بیشتر استفاده کنید!
چرا؟
مثلا تفاوت بین این دستور شما با دستور من چیست؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دوم:
تفاوت این دستور شما با دستور من چیست؟
چرا همه جا از دستور This استفاده کرده اید؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سوم:
با فرستادن سطر DataRow نظیر در DataTable، ضمن اینکه همه فیلدها را فرستاده اید، اگر در فرم دوم ویرایشی روی DataRow انجام دهید یا متد Delete آن را (نظیر یک دکمه "حذف" روی فرم دوم) اجرا کنید در هر دو صورت بدون کد و کار اضافه ای تغییرات در گراید در همان لحظه اعمال خواهد شد.
یعنی برای Delete چه چیزی بنویسم؟
برای Edit چه چیزی بنویسم؟
من برای Ins,Upd,Del هر کدام یک StoredProcedure درست کرده ام و از آنها استفاده می کنم. شما میفرمایید از آنها استفاده نکنم؟
این روش چه مزیتی نسبت به کار با Sp ها دارد؟
چهارم:
فرم دوم توسط دو جدول پر میشود
جدول1: مشخصات مشتری شامل فیلد کلید، نام، نام خانوادگی، ...
جدول2: جدول تلفن شامل فیلد کلید، تلفن1، تلفن2، ...
طبق راهنمایی شما من سطر انتخاب شده توسط DataGride که DataSource آن روی جدول اول تنظیم شده است را به فرم دوم میفرستم، حال چگونه اطلاعات جدول دوم را نیز به آن بفرستم؟(در فرم دوم یک ListBox وجود دارد که تلفنهای ثبت شده این فرد در آن نمایش داده میشود)
ممنون از پاسخ های شما
واقعا شرمنده من اینقدر شما را اذیت می کنم
سلام
... 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 بفرستید!
موفق باشید.
سلام
با این یک سوال من متوجه شدم که احتمالاً کمی پایه ای مشکل دارید ...
پیشنهاد میکنم کتاب یا جزوه ای در خصوص ADO.Net ...
به توصیه شما در مورد Ado یک فایل Pdf حدود 200 صفحه ای را مطالعه کردم (ممنون از توصیه بجا و عالی شما)!
حالا چند تا سئوال دارم؟
1.
من برای Ins,Upd,Del هر کدام یک StoredProcedure درست کرده ام و از آنها استفاده می کنم. شما میفرمایید از آنها استفاده نکنم؟
این روش چه مزیتی نسبت به کار با Sp ها دارد؟
زمانی که این دستور را استفاده میکنیم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مگر اطلاعات در DataSet (دیتابیس مجازی یا آفلاین) قرار نمیگیرد و برای تثبیت ان در دیتابیس از دستور
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نباید استفاده کرد؟
و برای Delete از
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
استفاده کنم؟
و ...
خوب، با این کار Sp های Ins,Upd,Del که برای تمام جدولها نوشته ام دیگر کاربردی ندارد!
در حالی که شما در پاسخ به سئوال من فرموده بودید که
کاملاً بد متوجه شدید!
2. سئوال دوم در مورد دستور Using:
منظور شما را از
1- چون Using باید روی اشاره گر شی قفل کند، در نتیجه باید در همان خط اول شی نمونه سازی شود و پر شود و این امر را نمیتوان به خطوط بعد محول کرد و اصلاً اشاره گر شی در بدنه Using در حالت ReadOnly قرار دارد و نمیتوانید چیزی در آن بریزید.!
2- شی مورد نظر باید واسط نابودسازی را همراه داشته باشد (System.IDisposable) یعنی برای هر نوعی که واسط مذکور را شامل نشود نمیتوان از Using استفاده کرد.
متوجه نشدم!
به عنوان مثال من یک کلاس با نام ChekNull دارم و در آن دو تابع ...
زمانی که از دستور
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
استفاده می کنم با خطا مواجه می شود
اگه امکان داره دوتا قانون رو بیشتر توضیح بفرمایید!
3. سئوال سوم هم همون سئوال پست قبلی
فرم دوم توسط دو جدول پر میشود
جدول1: مشخصات مشتری شامل فیلد کلید، نام، نام خانوادگی، ...
جدول2: جدول تلفن شامل فیلد کلید، تلفن1، تلفن2، ...
طبق راهنمایی شما من سطر انتخاب شده توسط DataGride که DataSource آن روی جدول اول تنظیم شده است را به فرم دوم میفرستم، حال چگونه اطلاعات جدول دوم را نیز به آن بفرستم؟(در فرم دوم یک ListBox وجود دارد که تلفنهای ثبت شده این فرد در آن نمایش داده میشود)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ببینید من باید تمام تلفنهای این شخص را به فرم دوم بفرستم(یعنی یک رکورد از جدول اول و n رکورد از جدول دوم)و آنها را در ListBox نمایش دهم!
چگونه تلفنهای این شخص را بدست آورم و در ListBox نمایش بدم؟
سلام
خوب، با این کار Sp های Ins,Upd,Del که برای تمام جدولها نوشته ام دیگر کاربردی ندارد!
مشکل شما آنجا است که با چند کلیک و در ساده ترین شکل و بدترین حالت ممکن DataAdapter را تولید میکنید.
در ویزارد ها هم اگر دقت کنید، گزینه هایی دارد که اجازه میدهد Command های UPDATE و DELETE و INSERT و SELECT را به جای دستورات مستقیم SQL به SP های از قبل آماده وصل کنید.
اتفاقاً بهترین حالت همین است، یعنی اگر هم مجبور به استفاده از DataSet و DataAdapter شدید، حداقل DataAdapter ها را برای بهترین حالت بهینه کنید و آنها را به SP های از قبل آماده وصل کنید.
به عنوان مثال من یک کلاس با نام ChekNull دارم و در آن دو تابع ...
استفاده می کنم با خطا مواجه می شود
اگه امکان داره دوتا قانون رو بیشتر توضیح بفرمایید!
قانون اول که خیلی ساده است !!!
یعنی دستور اول زیر صحیح است ولی دستورات دوم ایراد دارد.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
قانون دوم هم ساده است، باید کلاسس شما واسط IDisposable را داشته باشد!
مگر وراثت و پلی مورفیزم را بلد نیستید؟؟؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
چگونه تلفنهای این شخص را بدست آورم و در ListBox نمایش بدم؟
واقعاً با این مسائل مشکل دارید؟ کمی فکر کنید، این راه حل ها را بدون شک میدانید ...
شما یا میتوانید یک DataSet را ارسال کنید تا در محل ----- شود یا یک DataView ارسال کنید یا میتوانید در همان فرم و در همان محل اطلاعات را با توجه به شخص داده شده از دیتابیس استعلام کنید.
موفق باشید.
سلام
ببینید من دو تا جدول دارم:
در جدول اول مشخصات اولیه قرار دارد و در جدول دوم مشخصات ثانویه
کاربر از روی دیتا گرید که به جدول اول متصل شده است فرد مورد نظر را انتخاب میکند اما در فرمی که برای ویرایش اطلاعات باز می شود با اطلاعات جدول اول کاری نداریم و اطلاعات جدول دوم را باید به این فرم بفرستیم
چگونه اطلاعات جدول دوم را به فرم ویرایش بفرستم؟
من با این دستورات اطلاعات این مشتری را در جدول دوم بدست می اورم اما
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
چگونه آن را به System.Data.DataRowView تبدیل کنم تا آن را به فرم دیگر بفرستم؟
چیزی مثل این :
[[CODE]System.Data.DataRow dr = ((System.Data.DataRowView)this.periodBindingSource .Current).Row;[/CODE
سلام
چگونه آن را به System.Data.DataRowView تبدیل کنم تا آن را به فرم دیگر بفرستم؟
حالا قرار نیست حتما همیشه DataRowView باشد !!!
در جدول اول مشخصات اولیه قرار دارد و در جدول دوم مشخصات ثانویه
کاربر از روی دیتا گرید که به جدول اول متصل شده است فرد مورد نظر را انتخاب میکند اما در فرمی که برای ویرایش اطلاعات باز می شود با اطلاعات جدول اول کاری نداریم و اطلاعات جدول دوم را باید به این فرم بفرستیم
چگونه اطلاعات جدول دوم را به فرم ویرایش بفرستم؟
پیشنهاد میکنم فقط و فقط عدد primarykey (احتمالاً همین FSP.PeId_Value) را برای فرم دوم بفرستید و فرم دوم خودش با DataReader اطلاعات را همانجا استخراج و مصرف کند.
(البته اگر کارهالی دیتابیسی به لایه مخصوصی برای اینکار محول شود خیلی بهتر است که فعلاً این بحث شما نیست !)
موفق باشید.
سلام
من قبلا از روشهای دیگری برای اضافه کردن، حذف کردن، ویرایش کردن دیتابیس استفاده می کردم اما از زمانی که شما پیشنهاد حرفه ای استفاده از DataRow را ارائه فرمودید سعی کردم که کل برنامه را با این روش اصلاح کنم اما در پیاده سازی آن دچار مشکل شدم
اگر یک مشتری جدید بخواهم ثبت کنم از این دستور استفاده می کنم
...NewRow
ویا اگر بخواهم اطلاعات یک مشتری را ویرایش کنم از این دستور استفاده می کنم
System.Data.DataRow dr = ((System.Data.DataRowView)this.BindingSource1.Curr ent).Row;
که در هر دو صورت یک DataRow به فرم دوم هنگام New کردن آن ارسال میشود و فرم دوم فقط و فقط همین DataRow را به عنوان پارامتر می پذیرد و هیچگونه پارامتر دیگری ندارد(از تولید N پارامتر بی خاصیت جلوگیری میشود)
حال اگر فیلد کلید این مشتری در فرم اول موجود باشد و بخواهیم اطلاعات جدول دیگری که در این فرم موجود نیست در حافظه لود شود و آن را به DataRow تبدیل کرد و به فرم دوم فرستاد چه باید کرد(پیشنهاد حرفه ای چیست؟)
راستی اگر امکان دارد این موضوع را بیشتر توضیح بفرمایید!
البته اگر کارهالی دیتابیسی به لایه مخصوصی برای اینکار محول شود خیلی بهتر است ...
سلام
خوب شما میفرمائید دیگر برای این فرم ویرایشی جدید، DataRow ای ندارید که تحویلش دهید؟ درست است؟
یعنی محتویات DataGridView شما هم درهرصورت شامل این DataRow نیست
و اگر ویرایش در فرم دیاگوی دوم تمام شود، حتماً فرم اولتان هم جایی برای نمایش آن ندارد.
اصولاً مکانیزم های وابسته به DataSet همینطوری کند هستند و آن بحث DataRow فقط زمانی خوب و مقرون است که دیگر شما DataTable و DataSet ای را برای DataGridView لود کرده باشید.
یعنی مخصوص فقط همین ویرایش و درج نباشد (گمانم قبلاً هم گفته باشم)
یعنی دیگر DataSet در RAM است و خوب از آن و DataRow هایش استفاده میکنم !
ولی اگر DataSet ای در RAM نباشد و بخواهید مخصوص همین درج و ویرایش یک DataRow و طبیعتاً یک DataTable ایجاد کنید، این میشود نوعی چرخواندن لقمه دور سر !
به نظرم روشهای online ای مثل DataReader و Command برای این موارد بدون DataTable و DataRow آماده بهتر هستند.
(
تازه اگر برایتان سخت نمیشد، در همان DataGridView و ویرایش و درج عناصرش هم میتوانستید از DataReader و Command استفاده کنید و در نهایت فقط همان یک سطر را در DataGridView آپدیت کنید (کمترین Fill)
ولی کمی مشکل تر میشود و فعلاً شاید نیازتان نباشد.
)
==============
اگر خیلی روی DataRow تاکید دارید، میتوانید از دستورات زیر استفاده کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
طبیعتاً برای آپدیت دیتابیس هم باز باید با DataAdapter کار کنید.
===============
اگر فرمتان میخواهید کلی باشد و از هر جای برنامه قابل فراخوانی باشد ...
مشکلی ندارد که فرم دوم شما هم DataReader قبول کند و هم DataRow !
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
طبیعتاً در شرایط DataReader برای آپدیت نهایی باید از Command استفاده کنید.
سلام دوست عزیز
ببخشید چون من هیچگونه مرجع خاصی در دسترس ندارم و با 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 آموزشی یا ...) به من معرفی کنید ممنون میشوم
با تشکر فراوان
سلام
چگونه می توان فیلد 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 هم اگر سرچ کنید، شاید پیدا شود.)
موفق باشید.
با سلام
طبق بحث دوستان اگر ما بخواهیم مورد جدید اضافه کنیم باید سطر جدید ایجاد کرده و به فرم دوم بفرستیم:
1) فرض کنید که موردی که خواستیم درج کنیم قبلا در بانک موجود بوده است و طبیعتا عمل آپدیت انجام می شود. و این عمل در فرم اول در سطر جدید اتفاق می افتد
2)هنگام درج منصرف شویم در این حالت هم یک سطر جدید به دیتا گرید اضافه شده است.
چی کار باید کرد که این اتفاق نیفتد؟
سلام
هنگام درج منصرف شویم در این حالت هم یک سطر جدید به دیتا گرید اضافه شده است.
چی کار باید کرد که این اتفاق نیفتد؟
اول ببینیم شما درست منظورتان را رساندید و من درست متوجه شدم ...
شما یک فرم گرایدی دارید (فرم اول) قرار است و یک فرم ویرایش فرمی و تک سطری دارید (فرم دوم) ...
هر سطر گراید با عملی (شبیه دبل کلیک) در فرم ددم باز و آماده ویرایش میشود ...
احتمالاً دکمه ای برای آیتم جدید در فرم اول دارید که با کلیک ان فرم دوم باز میشود و اطلاعات جدید را وارد میکند ...
حالا میخواهید بتوانید عملیات آیتم جدید در فرم دوم را لغو و کنسل کنید؟
درست متوجه شدم؟
=====
راه اول:
خوب چه نیازی است اول datarow جدید را به datatable اضافه کنید و بعد فرم دوم را باز کنید؟
datarow جدید را قبل از نمایش فرم دوم بسازید ولی َadd نکنید و به فرم دوم بفرستید ...
اگر فرم دوم با DialogResult.OK بسته شده بود آنگاه در ادامه دستورات بعد از showdialog سطر جدید را به datatable اضافه و add کنید.
راه دوم:
راه سوم:
با وجود راه اول گمانم نیازی به گفتن اینها نباشد! :31:
=====
موفق باشید.
سلام
اول ببینیم شما درست منظورتان را رساندید و من درست متوجه شدم ...
شما یک فرم گرایدی دارید (فرم اول) قرار است و یک فرم ویرایش فرمی و تک سطری دارید (فرم دوم) ...
هر سطر گراید با عملی (شبیه دبل کلیک) در فرم ددم باز و آماده ویرایش میشود ...
احتمالاً دکمه ای برای آیتم جدید در فرم اول دارید که با کلیک ان فرم دوم باز میشود و اطلاعات جدید را وارد میکند ...
حالا میخواهید بتوانید عملیات آیتم جدید در فرم دوم را لغو و کنسل کنید؟
درست متوجه شدم؟
=====
راه اول:
خوب چه نیازی است اول datarow جدید را به datatable اضافه کنید و بعد فرم دوم را باز کنید؟
datarow جدید را قبل از نمایش فرم دوم بسازید ولی َadd نکنید و به فرم دوم بفرستید ...
اگر فرم دوم با DialogResult.OK بسته شده بود آنگاه در ادامه دستورات بعد از showdialog سطر جدید را به datatable اضافه و add کنید.
راه دوم:
راه سوم:
با وجود راه اول گمانم نیازی به گفتن اینها نباشد! :31:
=====
موفق باشید.
سلام از توجه شما بینهایت سپاسگزارم
من این راه حلی که شما فرمودید پیدا کرده بودم ولی یادم رفته بود تاپیک رو ویرایش کنم:11:
ولی برای سوال اول راه حلی به ذهنم نرسیده !!!
سلام
ولی برای سوال اول راه حلی به ذهنم نرسیده !!!
لطفاً واضح تر بیان کنید.
من متوجه سوالی نشدم! بنظرم جمله بیشتر خبری بوده تا پرسشی!
با سلام
1) فرض کنید که موردی که خواستیم درج کنیم قبلا در بانک موجود بوده است و طبیعتا عمل آپدیت انجام می شود. و این عمل در فرم اول در سطر جدید اتفاق می افتد
چی کار باید کرد که این اتفاق نیفتد؟
با این که عمل آپدیت در بانک درست اتفاق می افتد ولی کاربر احساس می کند 2 تا سطر برای کاربر مذکور ایجاد شده است.
سلام
با این که عمل آپدیت در بانک درست اتفاق می افتد ولی کاربر احساس می کند 2 تا سطر برای کاربر مذکور ایجاد شده است.
اگر مشکلتان را درست متوجه شده باشم (یا حتی نشده باشم!) شمکا میتوانید بعد از یک پایان یک Save موفقیت آمیز یک بارگذاری و Refresh دیتا ها را هم انجام دهید.
اینکار مخصوصاً در برنامه های شبکه ای رایج است و بهانه ای است تا اطلاعات نمایشی روی فرم سینک و به روز شود و اخرین تغییرات و اضافه و کم شده و تغییر کرده های دیتابیس را (که شاید لحظاتی قبل توسط فرد دیگر در شبکه هم انجام شده باشد) روی فرم نشان دهد و فرم کاربر اخرین اطلاعات فعلی را نمایش دهد.
موفق باشید.
Refresh دیتا ها را هم انجام دهید.
با تشکر فراوان از حسن توجه شما. من این کار را انجام دادم با دستور this.Refresh . ولی اتفاقی نمیفتد.
به امید موفقیت روزافزون شما
و یک سوال هم داشتم و اینکه Form1_Load(sender, e) با this.Refresh از نظر سرعت و عملکرد فرق دارن یا نه؟
سلام
من این کار را انجام دادم با دستور this.Refresh . ولی اتفاقی نمیفتد
Refresh دیتا نه ... !
یعنی دیتاستتان را Clear کنید و مجدد آن را Fill کنید ...
یکجایی در برنامه بالاخره می آیید و DataAdapter.Fill را انجام میدهید، درست است؟
همانجا (برای اطمینان) قبلش یک DataSet.Clear هم قرار دهید و این متد را برای باز تولید و باز خوانی اطلاعات مجدد فراخوانی کنید.
یک سوال هم داشتم و اینکه Form1_Load(sender, e) با this.Refresh از نظر سرعت و عملکرد فرق دارن یا نه؟
این دو کلاً از نظر عملکرد متفاوت هستند و ربطی به هم ندارند.
اولی رویدادی است که یکبار در زمان بارگذاری فرم اجرا میشود و دومی متدی است که نمایه دیداری و گرافیکی و layout فرم را باز تولید میکند.
شب بخیر.
سلام به آقای H2 نابغه
بااستفاده از کلاس command و connection و با استفاده از دستور insert into در sql اطلاعات وارد دیتابیس میشود اما بعضا این این روش با فارسی مشکلاتی دارد راه حل آن را برای من بازگو نمایید .
سلام
اما بعضا این این روش با فارسی مشکلاتی دارد راه حل آن را برای من بازگو نمایید
لیست تاپیک های مهم و سوالات متداول انجمن Framework ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
مشکل ذخیره اطلاعات فارسی در دیتابیس
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شب خوش.
سلام h2 جان گرامی
لطفا یک کمی از وقت گران قدرتان را به ما اختصاص دهید .
با تشکر
سلام بر h2 مهربان
در سیستم های B2B ، دیتاها چگونه به فرمت XML تبدیل میگردند . لطفا کد مربوطه را برای نمایش در یک دیتاگرید بنویسید .
با تشکر
درود بر h2
چگونگی پیاده سازی پارامترهای کانکشن استرینگ در یک صفحه در sql را برای تبدیل نهایی آن به XML را توضیح دهید .
باتشکر و قدردانی
سلام h2 جان
چگونه جداولی را که در یک یک database تعریف مینماییم میتوان به صورت یک رکوردست درآورد ؟
باتشکر
سلام
Refresh دیتا نه ... !
یعنی دیتاستتان را Clear کنید و مجدد آن را Fill کنید ...
یکجایی در برنامه بالاخره می آیید و DataAdapter.Fill را انجام میدهید، درست است؟
همانجا (برای اطمینان) قبلش یک DataSet.Clear هم قرار دهید و این متد را برای باز تولید و باز خوانی اطلاعات مجدد فراخوانی کنید.
با سلام
من این کار را انجام دادم ولی متاسفانه اشاره گر فقط به اولین ردیف اشاره می کند.دررویداد فرم اکتیو کد زیر رو نوشتم.
با تشکر و آرزوی سلامتی
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
در سیستم های B2B ، دیتاها چگونه به فرمت XML تبدیل میگردند
پیاده سازی پارامترهای کانکشن استرینگ در یک صفحه در sql
جداولی را که در یک یک database تعریف مینماییم میتوان به صورت یک رکوردست درآورد
تنظیم اجزای TAPI روی PC مورد نظر را توضیح دهید
کدی را میخواستم برایم بنویسید که event را فیلتر ، تنظیم ، رجیستر و کلا پردازشی ...
عمل انتخاب آدرس در یک ترمینالی که برای برقراری ارتباط انتخاب میشود چگونه است ...
جناب آقای TKNC ...
کسی که یکم مفاهیم برنامه نویسی را بلد باشد همچین سوالاتی نخواهد پرسید و در مقابل فوراً متوجه میشود کمی سرکار تشریف دارد...
قبلاً خدمتتان عرض کرده بودم و مجدد در تاپیک دیگرتان هم گفتم و مجدد تاکید میکنم ...
پیشنهاد میکنم اگر واقعاً علاقه به برنامه نویسی دارید، اصولی پیش بروید و کتابهای مرتبطی تهیه کنید و آهسته و پیوسته مطالعه بفرمائید.
شب خوش.
سلام علیکم ؛
بنده به فرمایشات جناب آقای h2 جامه عمل پوشاندم و کتاب های مرتبطی تهیه نمودم و آهسته و پیوسته جلو رفتم و به این سوال رسیدم . لطفا اگر جسارت نیست جواب بنده را بدهید .
سوال : الگوریتمی که جواب معادله درجه اول ax+b=0 را محاسبه و نمایش دهد .
باتشکر از بقیه دوستان
---------- Post added at 12:22 PM ---------- Previous post was at 12:20 PM ----------
مجددا پوزش می طلبم
در این آهسته و پیوسته جلو رفتن ها به یک سوال دیگر رسیدم .
سوال : الگوریتمی بنویسید که عددی را از ورودی دریافت نموده و قدر مطلق آن رو محاسبه و نمایش دهد .
با تشکر
---------- Post added at 12:25 PM ---------- Previous post was at 12:22 PM ----------
سلام علیکم ؛
بنده به فرمایشات جناب آقای h2 جامه عمل پوشاندم و کتاب های مرتبطی تهیه نمودم و آهسته و پیوسته جلو رفتم و به این سوال رسیدم . لطفا اگر جسارت نیست جواب بنده را بدهید .
سوال : الگوریتمی که جواب معادله درجه اول ax+b=0 را محاسبه و نمایش دهد .
باتشکر از بقیه دوستان
سلام
من این کار را انجام دادم ولی متاسفانه اشاره گر فقط به اولین ردیف اشاره می کند
خوب چه مشکلی دارد؟
دررویداد فرم اکتیو کد زیر رو نوشتم
به گمانم همان Form Load بهتر باشد.
=====
آقای TKNC لطفاً بیشتر مطالعه بفرمائید و سوالات خودتان را به صورت مجزا و مشخص در تاپیک جدید بپرسید ...
این طرز سوال پرسیدن در تاپیک هایی با موضوعات خاص چندان جالب نیست و موجب گسست موضوعی و بی نظمی خواهد شد.
جمیعاً شب خوش.
سلام
خوب چه مشکلی دارد؟
قرار بود وقتی روی هر سطر از دیتا گرید کلیک می کنم یه فیلد از اون سطر رو به فرم مورد نظر بفرسته. قطعه کد این قسمت درست کار می کند. ولی وقتی برای رفرش دیتا گرید کد زیر رو می نویسم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
روی هر سطر کلیک می کنم انگار که روی سطر اول کلیک کردم.
با تشکر
سلام
روی هر سطر کلیک می کنم انگار که روی سطر اول کلیک کردم
از چه کدی برای تشخیص سطر کلیک شده استفاده میکنید؟
یقیناً همین کد تشخیص شما مشکل دارد.
پیشنهاد میکنم از یک BindingSource استفاده کنید و DataSetTable را به آن بدهید و ان را به گراید بدهید.
اینطوری محل و سطر جاری را هم (از خصیصه های BindingSource) خواهید داشت.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.