PDA

View Full Version : radiobutton1.checked=true



shirin_h
شنبه 24 آذر 1386, 11:26 صبح
سلام
من می خوام radiobutton1.checked=true بشه اگه تو پایگاه دادم مقدار ستون خاصی از از یک رکورد مثلآ برابر "زن" باشه
لطفآ راهنماییم کنین

sinpin
شنبه 24 آذر 1386, 11:45 صبح
سلام
من می خوام radiobutton1.checked=true بشه اگه تو پایگاه دادم مقدار ستون خاصی از از یک رکورد مثلآ برابر "زن" باشه
لطفآ راهنماییم کنین

اگه مقادیر جنسیت رو بصورت عدد ذخیره میکنید کافیه یک تابع بنویسید به این شکل :


private bool SetGender2Bool(int _gender)
{
if (_gender == 0) // for male
return false;
else // for female
return true;
}

radiobutton1.checked = SetGender2Bool(<Related_Field>);

mr_moghimkhani
شنبه 24 آذر 1386, 12:05 عصر
اگه مقادیر جنسیت رو بصورت عدد ذخیره میکنید کافیه یک تابع بنویسید
آخه وقتی از کد شما بخواد استفاده کنه، دیگه چه لزومی داره که فیلدش عدد باشه؟ مگه String رو نمیتونه مقایسه کنه؟

mr_moghimkhani
شنبه 24 آذر 1386, 12:13 عصر
هنگام واکشی از DataBase هم میتونی اینکارو بکنی:


Select Case Gen WHEN 'زن' THEN 1 ELSE 0 END As Gen

بعد این رو به RadioButton متصل کنید.

سار
شنبه 24 آذر 1386, 12:33 عصر
مقایسه String کار خطرناکی هست اون هم با کاراکتر های فارسی + اینکه ذخیره عبارت "زن" و یا "مرد" جدول رو از حالت نرمال خارج می کنه.

shirin_h
شنبه 24 آذر 1386, 12:43 عصر
ستون جنسیت در جدول پایگاه دادم رشتس و اینکه آقای مقیمخوانی می شه بیشتر راهنمایی کنینو اینکه می شه بگین چرا مقایسه String کار خطرناکی هست اون هم با کاراکتر های فارسی + اینکه ذخیره عبارت "زن" و یا "مرد" جدول رو از حالت نرمال خارج می کنه.؟؟؟

سار
شنبه 24 آذر 1386, 12:49 عصر
فرض کنید 1 علامت مرد هست و 0 علامت زن حالا شما در یک جدول برای دخیره 10,00,000 رکورد چقدر فضا در نظر می گیرید از از داده Bit استفاده بشه و یا از داده nvarchar ؟
+ اینکه یک رشته کاراکتر به کاراکتر مقایسه میشه و ممکنه به حالن مرد =! مـرد باشه و هزاران حالت دیگه و .... .

sinpin
شنبه 24 آذر 1386, 13:16 عصر
آخه وقتی از کد شما بخواد استفاده کنه، دیگه چه لزومی داره که فیلدش عدد باشه؟ مگه String رو نمیتونه مقایسه کنه؟

دوست عزیز من منظور شما رو متوجه نمیشم.


private bool SetGender2Bool(int _gender)
{
if (_gender == 0) // for male
return false;
else // for female
return true;
}و اگه تابعی که من نوشتم (کد بالا) رو نگاه میکردید (!) متوجه میشدید که فرض رو بر عدد بودن پارامتر ورودی (جنیست) گرفته ام.

Hossein_R
شنبه 24 آذر 1386, 14:09 عصر
به نظر من چون مرد و زن بودن یک حالت بیشتر نداره ( یا false اه یا true ) بهتره که از اول توی دیتابیست اون رو به صورت bit ذخیره کنید و وقتی از دیتابیس میخونید اون رو برنامتون بو صورت متغیر bool نگهداری کنید : اونوقت نیازی به برنامه نویسی اضافی و یا توابع مقایسه ای وجود نداره و وفقط کافی اه radiobutton1.checked را مساوی متغیر قرار بدید !

shirin_h
شنبه 24 آذر 1386, 17:03 عصر
می دونین فقط مسآله این نیست من داده های زیادی دارم که بر اساس اونا radiobutton.checked باید true بشه بگین چه جوری باید اعمال کنم که dataviewmanager ای که تو برنامم هست یه جورایی با radiobutton ام bind شه طوری که بر اساس field خاصی radiobutton1.checked =true بشه

mr_moghimkhani
یک شنبه 25 آذر 1386, 13:54 عصر
اصولاً RadioButton مقادیر true/False یا 0/1 را میپذیرد. بنابراین زمانی که میخواهید داده ای از جدول را به RadioButton متصل(bind) کنید باید از دو مقدار فوق باشد. حال اگر نوع داده شما چیزی بغیر از دو نوع فوق است(بعنوان مثال String) باید در هنگام Select به این دو نوع تبدیل شود. که در سوال شما مقدار رشته ای "زن" باید به 1 و احتمالاً "مرد" به 0 تبدیل شود.
اینکار توسط if انجام میشود و فرمان if در هنگام Select در زبان SQL دستور Case است که به صورت زیر بیان میشود.


Select [YourField],...,Case Gen WHEN 'زن' THEN 1 ELSE 0 END As NewGen
From [YourTable]

پس از اجرا در ستون NewGen شما به جای "زن" عدد 1 و به جای باقی رشته ها عدد 0 را خواهید داشت. حال میتوانید مقادیر این ستون را به radioButton خود bind کنید.
موفق باشید.

mr_moghimkhani
یک شنبه 25 آذر 1386, 14:09 عصر
دوست عزیز من منظور شما رو متوجه نمیشم.


private bool SetGender2Bool(int _gender)
{
if (_gender == 0) // for male
return false;
else // for female
return true;
}و اگه تابعی که من نوشتم (کد بالا) رو نگاه میکردید (!) متوجه میشدید که فرض رو بر عدد بودن پارامتر ورودی (جنیست) گرفته ام.

ببینید من کاملاً کد شما رو میفهمم، سوال من این بود که چرا فرض رو بر عدد بودن گرفتید چون با یه تغییر کوچک میتوان تابع شما را برای نوع رشته ای هم نوشت.

من همینجا از کلیه دوستان میخواهم که اگر در جواب خود صورت مسئله را تغییر میدهند(مثل همین تاپیک که اکثراً مقدار String را تبدیل به عدد کرده اند) دلیل آن را بیان کنند. شاید اینطوری خیلی از سوالات تکراری بیان نشود و تاپیک خیلی زود به پاسخ خود برسد.
موفق باشید.