PDA

View Full Version : فرستادن یک مقدار بولین از چک باکس به دیتا بیس



blackrose1
دوشنبه 08 تیر 1388, 08:55 صبح
سلام . خسته نباشید
برنامه یه من یه قسمت داره که توی اون قسمت مقدار یک چک باکس باید به جدول ای در پایگاه داده منتقل بشه من یه ستون به نام chek تعریف کردم و نوع اون رو bit گرفتم و مقدار رو از سی شارپ اینطور فرستادم

com.CommandText = "update moshtarak set [chek]='" + Convert.ToBoolean(dataGridView1.Rows[i].Cells[0].EditedFormattedValue.ToString()) + "' where [code_moshtarak]='" + dataGridView1.Rows[i].Cells[1].EditedFormattedValue + "'";

اما الان یه ارور میده

syntax erorr converting the varchar value 'false' to a column of data type bit

NewFoxStudent
دوشنبه 08 تیر 1388, 09:32 صبح
'" + Convert.ToBoolean(dataGridView1.Rows[i].Cells[0].EditedFormattedValue.ToString()) + "'

به جای این قسمت یه متغیر از نوع عددی درست کن و اگه چک شده بود برابر 1و در غیر این صورت برابر صفر قرار بده و توی دستورت ازش استفاده کن

sima_62
دوشنبه 08 تیر 1388, 09:40 صبح
سلام
مقدار checkbox رو که true يا false هست رو desimal تبديل کنيد.






bool b = checkBox1.Checked;
decimal i = Convert.ToDecimal(b);

blackrose1
دوشنبه 08 تیر 1388, 09:42 صبح
این دستور قبلا با اس کیو ال 2000 کار میکرد نمیدونم چرا با sql2005 کار نمیکنه

به جای این قسمت یه متغیر از نوع عددی درست کن و اگه چک شده بود برابر 1و در غیر این صورت برابر صفر قرار بده و توی دستورت ازش استفاده کن
یعنی این دستور مشکل داره؟ پس چرا قبلا کار میکرد

blackrose1
دوشنبه 08 تیر 1388, 09:47 صبح
سلام
مقدار checkbox رو که true يا false هست رو desimal تبديل کنيد.








bool b = checkBox1.Checked;
decimal i = Convert.ToDecimal(b);





نه آخه چک باکس معمولی که نیست یه چک باکس هست که تو یه دیتا گرید ویو تعریف شده . یعنی اولین ستون از دیتا گرید هستش که اگه تیک بخوره طی یه بقیه برنامه یه سطر انتخاب میشه. کاری که من کردم این بود که تو یه جدول که قبلا مقدار گرفته بود با update این فیلد رو تغییر میدادم که قبلا هم کار میکرد . حالا به دلایلی مجبور شدم database رو عوض کنم حالا نمیدونم چرا جواب نمیده

Mohsen_Fotouhi
دوشنبه 08 تیر 1388, 11:19 صبح
دوست عزیرفکر کنم این روش هم خوب باشه فقط موقعه ارسال یه مقدار به ریختگی داره

bool Chk_Param = Convert.ToBoolean(dataGridView1.Rows[0].Cells[1]);

SqlCommand com = newSqlCommand();

com.CommandText = "insert into Sample(Chk) Values(@Chk)";
com.Parameters.Add("@Chk", SqlDbType.Bit);
com.Parameters["@Chk"].Value = Chk_Param;