PDA

View Full Version : سوال: انتخاب یک Radio Button و ذخیره آن در بانک



shomaluniversity
یک شنبه 07 فروردین 1390, 13:16 عصر
من یه مشکل تو ذخیره کردن radio button دارم.
3 تا radio button داریم ،کاربر فقط حق انتخاب یکی را دارد.با چه دستوری میشه اینو تو دیتابیس نوشت؟
مشکل من تو ذخیره کردن هستش.

ehsanara
یک شنبه 07 فروردین 1390, 13:22 عصر
میتونی تو رویداد Click هر RadioButton بنویسی که دوتا RadioButtonدیگه چک نشده باشن
یعنی فقط یکی تیک خورده باشه و برا ارسال هم چک میکنی کدوم چک شدس اون رو میفرستی

Directx
یک شنبه 07 فروردین 1390, 13:27 عصر
می شه بیشتر توضیح بدن . نوع دیتابیس چیه؟ آیا می خواهین که مثلا شماره ی radio button ی که انتخاب شده تو یه فیلد از دیتابیس ذخیره بشه؟

shadi khanum
یک شنبه 07 فروردین 1390, 13:30 عصر
واسه هر سه تا radiobutton تو دیتابیس فیلد بذار از نوع bit، هرکردوم که check بشه مقدارشو 1 کن و اگه Check نباشه 0 وارد دیتابیس میشه

Directx
یک شنبه 07 فروردین 1390, 13:35 عصر
نه دیگه این کار درستی نیست چون کاربر فقط حق انتخاب یه دونه از اونا رو داره بهتره که یه فیلد داشته باشیم و شماره ی انتخاب شده رو بفرستیم به اون فیلد اگه checkbox بود گفته ی شما بهتر بود ولی انجا فک کنم این کار اضافه باشه

ahrimaneahurai
یک شنبه 07 فروردین 1390, 18:15 عصر
این کار رو کنید که هر کدوم انتخاب شد توی دیتابیس یه عدد منحصر به فد ذخیره شه. مثلا توی دیتابیس فیلد x دارید . اگه اولی انتخال شد 1 دومی 2 و سومی هم 3

ehsanara
یک شنبه 07 فروردین 1390, 20:38 عصر
واسه هر سه تا radiobutton تو دیتابیس فیلد بذار از نوع bit، هرکردوم که check بشه مقدارشو 1 کن و اگه Check نباشه 0 وارد دیتابیس میشه
روشتون جالبه ولی معمولا سعی میشه که تو دیتابیس فیلدهای کمتری (با تکست کمتر) استفاده شه که در بلند مدت حجم فایل بک آپ بی دلیل زیاد نشه


اگه اولی انتخال شد 1 دومی 2 و سومی هم 3
اگه دائم از این RadioButton ها استفاده میشه این روش خوبیه و باید یه جدول تو دیتابیس درست کنی که تکست RadioButtonها توش باشه با یه شماره منحصر به فرد برای هر کدوم
زمانی که میخوای Save کنی بره تو اون جدول شماره اون تکست رو دراره و توی جدول اصلی با مقدار int ذخیره کنه (روشی که برنامه های بزرگ برا پایین اومدن حجم داده های دیتابیس استفاده میکنن همینه)

ehsanara
یک شنبه 07 فروردین 1390, 20:49 عصر
string S;
if (radioButton1.Checked)
S = radioButton1.Text;
else if (radioButton2.Checked)
S = radioButton2.Text;
else
S = radioButton3.Text;

رشته S رو میفرستی به دیتابیس

ضمنا میتونی کد بالا رو اینطوری هم بنویسی که خلاصه تر و بهتره

string S = radioButton1.Checked ? radioButton1.Text : (radioButton2.Checked ? radioButton2.Text : radioButton3.Text);

m.soleimani
یک شنبه 07 فروردین 1390, 20:50 عصر
میتونی تو رویداد Click هر RadioButton بنویسی که دوتا RadioButtonدیگه چک نشده باشن
یعنی فقط یکی تیک خورده باشه و برا ارسال هم چک میکنی کدوم چک شدس اون رو میفرستی

چه ربطی داشت به پرسش دوستمون !


3 تا radio button داریم ،کاربر فقط حق انتخاب یکی را دارد.با چه دستوری میشه اینو تو دیتابیس نوشت؟
مشکل من تو ذخیره کردن هستش.

این سه تا کنترل شما هر کدوم نشون دهنده یه مقدار خاص هستن روشی که ahrimaneahurai (http://barnamenevis.org/member.php?97515-ahrimaneahurai) گفت می‌تونه به شما کمک کنه در کل شما نیاز داری که نشون بدی فلان مقدار انتخاب شده پس توی دیتابیست اون فیلدی که مربوط به این مقدار هست رو تنظیم می‌کنی که هیچ زمانی اجازه خالی بودن نداشته باشه « Allow Nulls رو تیک نمی‌زنی » چون کنترلی که شما در نظر گرفتین منطقش این هست که همیشه باید یکی انتخاب شده باشه پس همیشه یه مقدار به دیتابیس می‌فرسته دیگه نوعش و مقادیر مجازش طبق نظر خودت و شروط نوشته شده در برنامت خواهد بود موفق باشید ./

ehsanara
یک شنبه 07 فروردین 1390, 21:15 عصر
چه ربطی داشت به پرسش دوستمون !

یه توضیح کلی بود

این سه تا کنترل شما هر کدوم نشون دهنده یه مقدار خاص هستن روشی که ahrimaneahurai (http://barnamenevis.org/member.php?97515-ahrimaneahurai) گفت می‌تونه به شما کمک کنه در کل شما نیاز داری که نشون بدی فلان مقدار انتخاب شده پس توی دیتابیست اون فیلدی که مربوط به این مقدار هست رو تنظیم می‌کنی که هیچ زمانی اجازه خالی بودن نداشته باشه
فکر نمیکنی سوال ایشون نحوه ذخیره کردن بود نه AllowNull بودن؟ :چشمک: (شوخی)

shadi khanum
یک شنبه 07 فروردین 1390, 21:49 عصر
به نظر من نه اسم و نه text یه Radiobutton نمیتونه ملاک واسه ذخیره تو دیتابیس باشه (مخصوصا اگه text اونا فارسی باشه که مشکل ی و ک هم شاید پیدا کنن) و فیلد bit هم 1 بایت بیشتر نیست و حتی اگه چندتا radiobutton هم داشته باشن حافظه زیادی نمیگیره! ضمنا اینجوری هر radiobutton به صورت کاملا مستقل از بقیه میتونه رفتار کنه و مشکلی واسه ذخیره نداشته باشه

pishraft
دوشنبه 08 فروردین 1390, 03:05 صبح
این بحث‌های بچه‌گونه دیگه چیه؟ شما یه چیز چرتی در مورد او پرسش پروندی به جای این‌که پاکش کنی ادامه می‌دی !!

کاربرا چقده اینجا راحت به همدیگه توهین میکنن
قبلا بازم دیده بودم از این بحث ها
راه حل خوب چی بود حالا؟

shomaluniversity
دوشنبه 08 فروردین 1390, 12:26 عصر
می شه بیشتر توضیح بدن . نوع دیتابیس چیه؟ آیا می خواهین که مثلا شماره ی radio button ی که انتخاب شده تو یه فیلد از دیتابیس ذخیره بشه؟

دیتا بیس sql server 2005 هستش. میخوام متن ذخیره بشه نه عدد.

shadi khanum
دوشنبه 08 فروردین 1390, 13:21 عصر
دیتا بیس sql server 2005 هستش. میخوام متن ذخیره بشه نه عدد.
آخه اگه متن radiobutton رو ذخیره کنی، اگه بعدا به هر دلیلی خواستی متن Radiobutton رو تغییر بدی اطلاعات ذخیره شده ات از بین میره (به دردت نمیخوره)

ehsanara
دوشنبه 08 فروردین 1390, 13:38 عصر
اگه روی ذخیره متن اصرار داری کدی که صفحه قبل برات گذاشتم رو میتونی استفاده کنی

shomaluniversity
یک شنبه 14 فروردین 1390, 17:50 عصر
اگه روی ذخیره متن اصرار داری کدی که صفحه قبل برات گذاشتم رو میتونی استفاده کنی
مرسی.مشکلم حل شد.
متن radio button در برنامه ثابته و نیازی به تغییر دادنش ندارم.

navidkhalilian
یک شنبه 14 فروردین 1390, 23:41 عصر
مرسی.مشکلم حل شد.
متن radio button در برنامه ثابته و نیازی به تغییر دادنش ندارم.

سلام دوست عزیز میدونم مشکلت حل شده اما هم به شما و هم به بقیه کسایی که پست دادن میگم که بهتره از خاصیت Tag کنترل ها استفاده بشه.چون هم میتونه فارسی نباشه.هم اینکه شما فقط یک فیلد دارید.



به نظر من نه اسم و نه text یه Radiobutton نمیتونه ملاک واسه ذخیره تو دیتابیس باشه (مخصوصا اگه text اونا فارسی باشه که مشکل ی و ک هم شاید پیدا کنن) و فیلد bit هم 1 بایت بیشتر نیست و حتی اگه چندتا radiobutton هم داشته باشن حافظه زیادی نمیگیره! ضمنا اینجوری هر radiobutton به صورت کاملا مستقل از بقیه میتونه رفتار کنه و مشکلی واسه ذخیره نداشته باشه

در مورد این مشکل ی و ک باید بگم اگر شما در دستورات sql از حرف N استفاده کنید یا اینکه collection را روی Persian تنظیم کنید هیچ مشکلی پیش نمیاد.



آخه اگه متن radiobutton رو ذخیره کنی، اگه بعدا به هر دلیلی خواستی متن Radiobutton رو تغییر بدی اطلاعات ذخیره شده ات از بین میره (به دردت نمیخوره)

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

موفق باشید.

shomaluniversity
دوشنبه 15 فروردین 1390, 13:51 عصر
سلام دوست عزیز میدونم مشکلت حل شده اما هم به شما و هم به بقیه کسایی که پست دادن میگم که بهتره از خاصیت Tag کنترل ها استفاده بشه.چون هم میتونه فارسی نباشه.هم اینکه شما فقط یک فیلد دارید.




در مورد این مشکل ی و ک باید بگم اگر شما در دستورات sql از حرف N استفاده کنید یا اینکه collection را روی Persian تنظیم کنید هیچ مشکلی پیش نمیاد.




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

موفق باشید.

سلام
ممنون میشم با یه مثال بیشتر توضیح بدی

navidkhalilian
چهارشنبه 17 فروردین 1390, 00:00 صبح
سلام
ممنون میشم با یه مثال بیشتر توضیح بدی

سلام دوست عزیز.اینم مثال

Insert into Table1 (a,b,c) Values (N'علی',N'رضا',N'محمد')

موفق باشید.

alexmcse
پنج شنبه 16 اسفند 1397, 15:43 عصر
بدست آوردن چک خوردن رادیو باتن در بین چند تا رادیو باتن

private RadioButton CheckedRadio(List<RadioButton>radio) {

foreach (var VARIABLE in radio)
{
if (VARIABLE.Checked)
{
return VARIABLE;

}

}

return new RadioButton() ;
}


private void button4_Click(object sender, EventArgs e)
{
MessageBox.Show(CheckedRadio(new List<RadioButton>() {radioButton1, radioButton2, radioButton3}).Text);
}