PDA

View Full Version : سوال: انتخاب و ثبت checkBox در دیتابیس



mahdi_7610
جمعه 25 اردیبهشت 1388, 12: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, 12:08 عصر
كلا كارت از ريشه غلط شما بايد نوع فيلد رو بيت بگيري و بزاري DataBase كارشو بكونه واسه كاربرم هيچ فرقي نميكنه و حجم DB هم مياد پايين.

mahdi_7610
جمعه 25 اردیبهشت 1388, 12:44 عصر
كلا كارت از ريشه غلط شما بايد نوع فيلد رو بيت بگيري و بزاري DataBase كارشو بكونه واسه كاربرم هيچ فرقي نميكنه و حجم DB هم مياد پايين.

خودم میدونم باید bit بگیرم .

این واسه امتحان بود که ببینم چه طور میشه دارد و ندارد را توی دیتاگرید نشون بدم .

به خاطر همین bit نگرفتم

حالا شما اگه خیلی ناراحتی با bit توضیح بده :افسرده:

mahdi_7610
جمعه 25 اردیبهشت 1388, 15:59 عصر
به نظرم باید با حلقه foreach پیاده سازی بشه .

کسی می تونه کمک کنه :افسرده:

adinochestva
جمعه 25 اردیبهشت 1388, 16:13 عصر
اگه می خوای دارد ندارد باشه یه متد بزار که bool بگیره دارد و ندارد برگردونه !

hojjat_gh
جمعه 25 اردیبهشت 1388, 16: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, 20:28 عصر
convert.toint(checkbox.checked).tostring()

happy65_sh
شنبه 26 اردیبهشت 1388, 09: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, 14: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, 07:46 صبح
خوب موقعی که از دیتا بیست می خونی و می خواهی مقادیرت را نمایش بدی,می تونی چک کنی اگه مقدار بازگشتی True هست دارد برگرداندواگه False بود ندارد:


if(dr[0].ToString()=="True")
TextBox1.Text="دارد";
else if(dr[0].ToString()=="False")
TextBox2.Text="ندارد";

asd_moghadas
یک شنبه 27 اردیبهشت 1388, 08:10 صبح
سلام میپتوانی چهارمقدار byteراتعریف کنید وباشرط

if(chekebox1.checke==true)
checkbox1=1;
else
checkbox1=0;

برای هر چک باکس استفاده کنی ودر دیتاگرید هرجا1بود =داردوهرجا 0بود =ندارد واز forche()برای پیمایش رکورد ها استفاده کنی درضمن دستور قوق مربوط به زمانی است که ما از query استفاده کنیم نه binding