PDA

View Full Version : راهنمایی برای ذخیره مقدار تعداد زیادی CheckBox



mehdiba3
یک شنبه 26 مرداد 1393, 19:58 عصر
24، CheckBox در یک Group box وجود دارد که میخوام کاربر تیک هر کدوم رو زد مقدارش درون دیتابیس ذخیره بشه.
برای 24 چک باکس ، 24 فیلد درون SQL تعریف کردم. میتونم یکی یکی خاصیت Checked هر Check box ذخیره کنم ولی بنظر خودم اصلا بهینه نیست که 24 خط کد بخوام بنویسم
بنظرتون با استفاده از آرایه میشه؟ اگه آره چطور؟ بنظرتون با For Each میشه؟ بگه میشه چطور؟
با توجه به اینکه همه چک باکس ها درون یک گروپ باکس هستش باید روشی باشه که بتونم اون گروپ باکسو با یک حلقه بررسی کنم.
لطفا راهنماییم کنین
پیشاپیش ممنونم

Rejnev
یک شنبه 26 مرداد 1393, 21:02 عصر
یکی از راه ها اینه که یک چک باکس سفارشی بسازی و براش property تعریف کنی که عنوان ستون رو نگه داره.
بعد با تغییر وضعیت چک باکس، داده ها رو بروز رسانی کنی.
مثال:
یک فایل سی شارپ به پروژه اضافه کن و کدهای زیر رو بنویس

/*using ...*/
public class MyCheckBox : System.Windows.Forms.CheckBox
{
public string FieldName{get;set;}

protected override void OnCheckedChange(/*...*/)
{
//sql command for update
//use this.Checked
}
}

بعد از ذخیره، پروژه رو بیلد کن تا کلاس بالا به تول باکست اضافه بشه. بعد کنترل رو روی فرم درگ کن و به پراپرتی FieldName هر کدوم مقدار اولیه بده...
در مورد اسم اون متدی که اورراید کردم مطمئن نیستم. با Intellisense خود ویژوال استودیو پیداش کن.

mehdiba3
یک شنبه 26 مرداد 1393, 21:26 عصر
این روش رو که توضیح دادین خیلی سخته برام. چطوری با این روش آشنا شم؟

mehdiba3
یک شنبه 26 مرداد 1393, 21:32 عصر
آیا روش آسونتری هم هست؟

Mori Bone
یک شنبه 26 مرداد 1393, 21:54 عصر
این روش رو که توضیح دادین خیلی سخته برام. چطوری با این روش آشنا شم؟
درباره ی شی گرایی (وراثت و ...) جستجو کنید.


دوستمون Rejnev (http://barnamenevis.org/member.php?99991-Rejnev) بهنرین روش رو پیشنهاد کردن. شما از همین روش استفاده کن سوالی پیش اومد بپرس

plus
یک شنبه 26 مرداد 1393, 21:56 عصر
با مشخصه Controls مربوط به GroupBox میتونید به لیست کنترل های موجود درش دسترسی پیدا کنید.

foreach (var control in groupBox1.Controls) {
if (control is CheckBox) {
CheckBox checkBox = (CheckBox)control;
if (checkBox.Checked == true) {
;//
}
}
}

alibilgats
یک شنبه 26 مرداد 1393, 21:58 عصر
دوست عزیز شما با چه روشی جدولت رو آپدیت میزنی مگه؟!
دلیلی نداره شما همه چک باکس ها رو یکی یکی آپدیت بزنی! مقادیر همرو یکجا بفرست خب!

Mori Bone
یک شنبه 26 مرداد 1393, 22:00 عصر
با توجه به کده جناب Plus:
میتونید کوئری زیر رو بنویسید
foreach (var control in groupBox1.Controls) {
if (control is CheckBox) {
'update table set ' + control.Name + ' = ' + control.CHecked;
}
}

mehdiba3
دوشنبه 27 مرداد 1393, 05:46 صبح
منبعی هست که با مطالعه اون بتونم شی گرایی رو کاربردی یاد بگیرم؟
تا الان چندین بار تلاش کردم شی گرایی رو یادبگیرم ولی همیشه مثال ها و آموزش مثال خوب و کاربردی نبوده و دل من زده شده.
لطفا اگه منبعی مناسب حتی بسیار ساده دارین به من بدین.
خیلی خیلی ممنون می شم

Mori Bone
دوشنبه 27 مرداد 1393, 21:51 عصر
اگه شما درس و به جا جستجو کنید حتما نتیجه ی دلخواه رو بدست میاری.
مشکل همه اینه که یه مشت آموزش چرت و پرت پرشده تو اینترنت ولی یه آموزش درست و حسابی درباره جستجو تو هر جایی، نیس
امیدوارم به چشم توهین به این پست نگاه نکنید. همه بیشتر از آموزش برنامه نویسی نیاز به آموزش جستجو دارند:چشمک: