PDA

View Full Version : سوال: برطرف کردن وابستگی کمبوباکس هایی که از یک دیتاسورس پر می شوند



veniz2008
یک شنبه 30 مهر 1391, 16:59 عصر
سلام. من 3 تا کمبوباکس دارم. کمبوباکس اول اطلاعاتش از جدول و با کدنویسی پر میشه. کمبوباکس دوم و سوم از کمبوباکس اول پر میشن. مشکل اینجاست وقتی مقدار کمبوباکس دوم رو تغییر میدم، کمبوباکس سوم هم مقدارش برابر کمبو دوم میشه و بالعکس(یعنی زمانیکه مقدار کمبوباکس سوم رو تغییر میدم، مقدار کمبوباکس دوم هم برابر کمبو سوم میشه). در یک کلام : کمبو دوم و سوم همیشه مقدارشون یکی هست که من میخوام مستقل از هم باشن.

nilmil_nil
یک شنبه 30 مهر 1391, 18:17 عصر
سلام
کدتون رو بذارید

veniz2008
یک شنبه 30 مهر 1391, 18:54 عصر
درون رویداد selectedIndexchange مربوط به کمبو اول کد زیر رو قرار دادم که در واقع کمبوهای دوم و سوم رو پر میکنه(DtPoint هم دیتاتیبلی هست که با توجه به مقدار کمبو اول، مقدار دهی و به دیتاسورس کمبوها بایند شده):

CmbPoint1.DataSource = DtPoint;
CmbPoint1.DisplayMember = "PointTitle";
CmbPoint1.ValueMember = "PointCode";
//
CmbPoint2.DataSource = DtPoint;
CmbPoint2.DisplayMember = "PointTitle";
CmbPoint2.ValueMember = "PointCode";

gwbasic
یک شنبه 30 مهر 1391, 20:32 عصر
شما از یک DataSource‌ برای کمبو ها استفاده می کنید درنتیجه همین اتفاق می افته. یک راه ساده استفاده از BindingSource هست. به ازای هر کمبو یک BindingSoure تعریف کنید و Datasource تون رو به DataSource مربوط به BindingSource‌بدین و BindingSource رو به DataSource مربوط به Combo :

BindingSource bindingSource1 = new BindingSource();
bindingSource1.DataSource = DtPoint;
CmbPoint1.DataSource = bindingSource1;
CmbPoint1.DisplayMember = "PointTitle";
CmbPoint1.ValueMember = "PointCode";
BindingSource bindingSource2 = new BindingSource();
bindingSource2 .DataSource = DtPoint;
CmbPoint2.DataSource = bindingSource2;
CmbPoint2.DisplayMember = "PointTitle";
CmbPoint2.ValueMember = "PointCode";


DataTable و DataSet‌ رو فراموش کنید و از یک ORM مثل Entity Framework استفاده کنید تا از برنامه نویسی لذت ببرید.

veniz2008
یک شنبه 30 مهر 1391, 20:50 عصر
DataTable و DataSet‌ رو فراموش کنید و از یک ORM مثل Entity Framework استفاده کنید تا از برنامه نویسی لذت ببرید.واقعیتش رو بخواید چند وقتی هست که دارم به این موضوع فکر میکنم. تاپیک هایی رو هم درباره رفتن از Ado به Entity Framework خوندم ولی هنوز یه مساله برام مبهمه :
آیا Entity فقط کد نویسی رو راحت تر میکنه؟
آیا Entity حجم کدهایی رو که قراره من بنویسم کمتر میکنه و خودش این کدها رو در پس زمینه تولید میکنه؟
یه جایی خوندم که میگفت چون entity بیشتر کدها رو خودش تولید میکنه ، برنامه نویس رو تنبل و خطایابی رو سخت تر میکنه. آیا این حرف، حرف درستیه؟

gwbasic
یک شنبه 30 مهر 1391, 21:06 عصر
نمی دونم چرا شما اینطور فکر می کنید سالهاست که از ORM استفاده می شه و این موضوع کاملا جا افتاده. ببینید ORM کدنویسی رو راحتتر و امکانات فراوانی رو به شما میده اصلا نگران نباشید و شک نکنید. تنبلی رو متوجه نمی شم! استفاده از زبانهای سطح بالا به این منظوره که برنامه نویس کمتر درگیر مسائل Low Level بشه و بیشتر به Bussiness ‌و منطق برنامه فکر کنه حالا شما به این می گین تنبلی. به فرض من از یک زبان ویِژوال استفاده نکنم و فرمم رو از طریق کد نویسی بسازم بعد برناممو 100 بار run کنم و تغییر بدم فرممو تا کنترل ها مرتب و سر جاشون قرار بگیرن به این میشه گفت زرنگی یا وقت هدر دادن تا اینکه با یه Desginer‌راحت فرمم رو طراحی کنم... .
اگر کمی دقت کنید DataSet و DataTable‌ هم کلاس هستند و بفرض وقتی شما از یک DataAdapter‌ و یا TableAdapter‌ استفاده می کنید در اصل پشت صحنه هم نگاشت بین فیلدهای ‌table تون به DataTable‌انجام می شه و شما خبری ندارین (اینم یک نوع تنبلیه دیگه) ولی اگر از ‌EF استفاده کنین این طرف یکسری کلاس دارین که دیگه DataTable‌و DataSet‌نیستند و محدودهای اونها رو مثل وراثت ندارن و اتفاقا دست شما باز هست.
EF Code First رو مطالعه کنید و لذت ببرید

veniz2008
یک شنبه 30 مهر 1391, 21:21 عصر
تشکر از راهنماییتون. جواب های شما قانع کننده بود. فقط اگر امکانش هست یک منبع خوب فارسی هم ذکر کنید که روان و ساده توضیح داده باشه. اگر نکته ای هست که به نظرتون باید در ابتدا رعایت کنم لطفا بگید.

gwbasic
دوشنبه 01 آبان 1391, 07:22 صبح
هیچ وقت خودتون رو به یک کتاب محدود نکنید هر کتابی در این زمینه رو بخونید. اما منابع فارسی که می تونید استفاده کنید:
آموزش آقای حسین احمدی (http://www.itpro.ir/Articles/Details/1/%D8%A2%D9%85%D9%88%D8%B2%D8%B4%20%D8%A7%D8%B3%D8%A A%D9%81%D8%A7%D8%AF%D9%87%20%D8%A7%D8%B2%20Entity% 20Framework%20Code-First%20-%20%D8%A8%D8%AE%D8%B4%20%D8%A7%D9%88%D9%84)
آموزش آقای سید علا سبزپوش (http://alaasabzpoush.blogsky.com/1389/10/14/post-66/)
آموزش آقای وحید نصیری (http://www.dotnettips.info/Post/831/ef-code-first-1)