View Full Version : سوال: انتخاب و ثبت checkBox در دیتابیس
mahdi_7610
جمعه 25 اردیبهشت 1388, 13:00 عصر
سلام
توی پروژه من کاربر قصد وارد کردن اطلاعات را داره و توی یه قسمت کاربر باید با زدن تیک checkBox مشخص کنه که مثلا خونه داره یا نداره
اگه تیک checkBox زده بشه توی دیتابیس ثبت میشه دارد
و اگه تیک را نزنه توی دیتابیس ثبت میشه ندارد
حالا من 4 تا checkBox دارم و کاربر باید اونا را یا انتخاب کنه یا انتخاب نکنه
من کد زیر را برای دکمه insert نوشتم .
if (checkBox1.Checked == true)
{
cmd.Parameters.Add("@AB", SqlDbType.NVarChar, 50).Value = "دارد";
}
else
{
cmd.Parameters.Add("@AB", SqlDbType.NVarChar, 50).Value = "ندارد";
}
و اگه بخوام برای هر 4 تا checkBox دستور بالا را بنویسم کدنویسی یه مقدار شلوغ میشه .
حالا باید برای هر 4 تا checkBox دستور بالا را بنویسم یا روش کوتاهی هم هست ؟
مرسی
Hamid.Mayeli
جمعه 25 اردیبهشت 1388, 13:08 عصر
كلا كارت از ريشه غلط شما بايد نوع فيلد رو بيت بگيري و بزاري DataBase كارشو بكونه واسه كاربرم هيچ فرقي نميكنه و حجم DB هم مياد پايين.
mahdi_7610
جمعه 25 اردیبهشت 1388, 13:44 عصر
كلا كارت از ريشه غلط شما بايد نوع فيلد رو بيت بگيري و بزاري DataBase كارشو بكونه واسه كاربرم هيچ فرقي نميكنه و حجم DB هم مياد پايين.
خودم میدونم باید bit بگیرم .
این واسه امتحان بود که ببینم چه طور میشه دارد و ندارد را توی دیتاگرید نشون بدم .
به خاطر همین bit نگرفتم
حالا شما اگه خیلی ناراحتی با bit توضیح بده :افسرده:
mahdi_7610
جمعه 25 اردیبهشت 1388, 16:59 عصر
به نظرم باید با حلقه foreach پیاده سازی بشه .
کسی می تونه کمک کنه :افسرده:
adinochestva
جمعه 25 اردیبهشت 1388, 17:13 عصر
اگه می خوای دارد ندارد باشه یه متد بزار که bool بگیره دارد و ندارد برگردونه !
hojjat_gh
جمعه 25 اردیبهشت 1388, 17:15 عصر
با سلام
شما میتونید چهار متغیر سراسری t1="0",t2="0",t3="0",t4="0" تعریف کنید وتو دکمه مثلا ثبت اون چهار متغیر رو به این شکل مقدار دهی کنی وبعد ثبتشون کنی:
if(chechbox1.checked==true)
{
t1="1";
}
if(chechbox2.checked==true)
{
t2="1";
}
if(chechbox3.checked==true)
{
t3="1";
}
if(chechbox4.checked==true)
{
t4="1";
}
behzadk
جمعه 25 اردیبهشت 1388, 21:28 عصر
convert.toint(checkbox.checked).tostring()
happy65_sh
شنبه 26 اردیبهشت 1388, 10:32 صبح
cmd.Parameters.Add("@a", checkBox1.Checked )
cmd.Parameters.Add("@b", checkBox2.Checked )
cmd.Parameters.Add("@c", checkBox3.Checked )
cmd.Parameters.Add("@d", checkBox4.Checked )
توی Databaset مقادیر True و False ریخته می شه.
mahdi_7610
شنبه 26 اردیبهشت 1388, 15:54 عصر
cmd.Parameters.Add("@a", checkBox1.Checked )
cmd.Parameters.Add("@b", checkBox2.Checked )
cmd.Parameters.Add("@c", checkBox3.Checked )
cmd.Parameters.Add("@d", checkBox4.Checked )
توی Databaset مقادیر True و False ریخته می شه.
سلام
مرسی
اما همه مشکل من توی این دارد و ندارد هستش
ممکنه کسی که از برنامه استفاده میکنه متوجه نشه 0 و 1 یا True و False چیه
امکانش هست اینا را به دارد و ندارد تغییر داد ؟
ممنون
happy65_sh
یک شنبه 27 اردیبهشت 1388, 08:46 صبح
خوب موقعی که از دیتا بیست می خونی و می خواهی مقادیرت را نمایش بدی,می تونی چک کنی اگه مقدار بازگشتی True هست دارد برگرداندواگه False بود ندارد:
if(dr[0].ToString()=="True")
TextBox1.Text="دارد";
else if(dr[0].ToString()=="False")
TextBox2.Text="ندارد";
asd_moghadas
یک شنبه 27 اردیبهشت 1388, 09:10 صبح
سلام میپتوانی چهارمقدار byteراتعریف کنید وباشرط
if(chekebox1.checke==true)
checkbox1=1;
else
checkbox1=0;
برای هر چک باکس استفاده کنی ودر دیتاگرید هرجا1بود =داردوهرجا 0بود =ندارد واز forche()برای پیمایش رکورد ها استفاده کنی درضمن دستور قوق مربوط به زمانی است که ما از query استفاده کنیم نه binding
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.