PDA

View Full Version : سوال: نحوه انتقال فیلدهای جدول combo box



salehvasaleh
دوشنبه 03 بهمن 1390, 21:13 عصر
دوستان چطوری می شه کاری کرد که تمام ستون های جدول به combo box انتقال پیدا کنند؟

Hybrid
دوشنبه 03 بهمن 1390, 21:16 عصر
سلام دوست عزیز منظروت رو دقیقا متوجه نمیشم همه ی ستون ها؟؟؟ یا فقط میخواین اطلاعات یه ستون رو به کامبو بایند کنین؟؟؟

AliSaeedi_v
دوشنبه 03 بهمن 1390, 21:21 عصر
سلام این کد رو بنویس
البته بعد از اینکه datatableرو پرکردی
CBcustomerT1.DisplayMember = "name";
CBcustomerT1.ValueMember = "id";
CBcustomerT1.DataSource = dt;

salehvasaleh
دوشنبه 03 بهمن 1390, 21:26 عصر
سلام دوست عزیز منظروت رو دقیقا متوجه نمیشم همه ی ستون ها؟؟؟ یا فقط میخواین اطلاعات یه ستون رو به کامبو بایند کنین؟؟؟
منظورم انتقال تمام ستون های یک جدول به کمبو باکس هست

salehvasaleh
دوشنبه 03 بهمن 1390, 21:29 عصر
سلام این کد رو بنویس
البته بعد از اینکه datatableرو پرکردی
CBcustomerT1.DisplayMember = "name";
CBcustomerT1.ValueMember = "id";
CBcustomerT1.DataSource = dt;
می شه در مورد display member
و
value member
صحبت کنی؟ من زیاد تا حالا با کمبو باکس کار نکردم.ممنون

mp_mp353
دوشنبه 03 بهمن 1390, 21:31 عصر
اگه درست منظور شما رو فهمیده باشم. البته راهای بهتری هم هست.
for (int i = 0; i < dt.Rows.Count; i++)
{
comboBox2.Items.Add('آیتم مورد نظر از جدول');
}

AliSaeedi_v
دوشنبه 03 بهمن 1390, 21:35 عصر
display member ستونی که قرار هست نمایش داده بشه نشون میده.value member رو میتونی مقدار دهی نکنی اما این خاصیت میاد idشخصی که در بانک ذخیره شده دریافت و نگهداری میکنه
اگه نگرفتی بگو بیشتر توضیح بدم

Hybrid
دوشنبه 03 بهمن 1390, 21:40 عصر
می شه در مورد display member
و
value member
صحبت کنی؟ من زیاد تا حالا با کمبو باکس کار نکردم.ممنون

سلام دوست عزیز ، خاصیت اول کد دوستمون میاد منبع داده ای رو که قصد داریم اطلاعات درونش رو نشون بدین از طریق خاصیت DataSource مشخص میکنیم که در این کد دوستمون این منبع داده یه Datatable یا جدول هست... قبول داری که هر جودل از جمله این DataTable شامل چند تا فیلد هست ؟؟ پس ما میایم از طریق خاصیت DisplayMember مشخص میکنیم که قصد داریم اطلاعات کدوم فیلد رو در کامبو نشون بدیم پس در جلوی DisplayMeMber میایم نام فیلد مورد نظر رو مینویسیم.. خوب حالا ValueMember چی هست... نگا با همون دو خاصیت بالا هم اطلاعات بایند میشن ولی وقتی که روی یکی از گزینه های کامبو که بایند شدن کلیک میکنیم به یه سطر از جدول اشاره میکنه و ما از طریق خاصیت ValueMember میایم مشخص میکنیم که اطلاعات کدوم سلول از اون سطر رو میخوایم..مثلا ممکنه که شما Displaymember رو مقدار فیلد نام مشخص کنیم ولی خاصیت ValueMember رو فیلد نام خانوادگی مشخص کنید و هرگاه از طریق خصوصیت SelectedValue مراجعه کنین مقدار نام خانوادگی رو بهتون میده نه نام رو ( یه کم گیج کننده به نظر میرسه کمی دقت کنی متوجه میشی )

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

موفق باشید./

AliSaeedi_v
دوشنبه 03 بهمن 1390, 21:49 عصر
اگه درست منظور شما رو فهمیده باشم. البته راهای بهتری هم هست.
for (int i = 0; i < dt.Rows.Count; i++)
{
comboBox2.Items.Add('آیتم مورد نظر از جدول');
}

این روش کار میکنه اما اصلا بهینه نیست.حالا شما 100 تا رکورد داشته یاشی چی؟!این یک تکنیک هست که ماکروسافت تعبیه کرده

salehvasaleh
دوشنبه 03 بهمن 1390, 21:51 عصر
ممنون از توضیحاتتون فک کنم فهمیدم چی شد اگر بر به مشکل خوردم باز سوال می پرسم. ممنون

mp_mp353
دوشنبه 03 بهمن 1390, 22:00 عصر
سلام. دوست من آقای AliSaeedi_v میدونم این روش روش بهینه نیست. بازم ممنون.
من زیاد از کامبو استفاده نمیکنم ولی ممنون میشم به من روش درست رو یاد بدید.
بازم ممنون

mp_mp353
دوشنبه 03 بهمن 1390, 22:11 عصر
دوستان دیگه هم اگه روش خاصی رو مد نظر دارند لطف کنن قرار بدن تا همه و به خصوص خود من استفاده کنیم.
با تشکر از همه

AliSaeedi_v
دوشنبه 03 بهمن 1390, 22:13 عصر
سلام خیلی مخلصیم
شما گفتین راههای بهتری هم هست در صورتی که راه بهتر این نیست که از حلقه استفاده کنیم.
بهتره تا میشه از تکنیک های موجود بهره بگیریم.:تشویق::بوس:

mp_mp353
دوشنبه 03 بهمن 1390, 22:19 عصر
سلام درسته من گفتم راهای بهتری هم هست البته اینکه من نمیدونم چی هستن! و تنها روشی که بلد بودم حلقه بود اما به کمک دیتا بایندینگ هم باید بشه که من کار نکردم. الان خیلی مشتاق شدم تا یه روش بهینه تر رو یاد بگیرم. البته تکرار (حلقه) خیلی سنگین میشه و البته بهینه هم نیست. بازم ممنونم دوست من.