PDA

View Full Version : مشکل در استفاده از checkbox در زمان ویرایش اطلاعات



khanoooooomi
جمعه 24 آبان 1387, 02:03 صبح
سلام:ناراحت:

من جدیدا عضو این سایت شدم و در حال انجام یک پروژه برای یکی از درسهای دانشگام هستم.
مشکلم اینه که من در data base یکسری اطلاعات بصورت yes/no دریافت میکنم در نتیجه نوعش رو small int انتخاب کردم... و تو فرمم از checkbox استفاده کردم ، در زمان دریافت این اطلاعات که بصورت yes/no بود دچاره مشکل شد و گفت که نمیتونه با smallint هیت اطلاعات رو ذخیره کنه، من نوعش رو به nchar تغییر دادم حالا اطلاعات رو ذخیره و حذف میکنه اما ویرایش نمیکنه، میگه که true و false رو بصورت boolean نمیتونه تبدیل کنه.............من چیکار میتونم بکنم:گریه::گریه::گریه::گریه:: صبانی++: دارم کلافه میشم....لطفا کمکم کنید. ممنون

s.k711
جمعه 24 آبان 1387, 11:00 صبح
مشکلم اینه که من در data base یکسری اطلاعات بصورت yes/no دریافت میکنم در نتیجه نوعش رو small int انتخاب کردم... و تو فرمم از checkbox استفاده کردم ، در زمان دریافت این اطلاعات که بصورت yes/no بود دچاره مشکل شد و گفت که نمیتونه با smallint هیت اطلاعات رو ذخیره کنه، من نوعش رو به nchar تغییر دادم حالا اطلاعات رو ذخیره و حذف میکنه اما ویرایش نمیکنه، میگه که true و false رو بصورت boolean نمیتونه تبدیل کنه.............من چیکار میتونم بکنم:گریه::گریه::گریه::گریه:: صبانی++: دارم کلافه میشم....لطفا کمکم کنید. ممنون

سلام دوست عزيز .
شما چرا از smallint يا nchar استفاده كرده ايد؟
شما ميتوانيد از نوع bit در sql استفاده كنيد و در برنامه اگه كاربر checkbox را كليك كرد مقدار يك و در غير اين صورت مقدار صفر ذخيره بشه.
ويرايشش هم اسونه.
در ضمن نوع بيت جاي كمتري اشغال ميكنه. اين را امتحان كنيد اميدوارم جواب بگيريد.
البته يادتون باشه اگه اطلاعات بانكتون را تغيير داديد قبل از ران كردن برنامتون حتما اطلاعات dataset را update كنيد وگرنه به مشكل بر ميخورين.

khanoooooomi
جمعه 24 آبان 1387, 16:47 عصر
از این روشی که گفتین استفاده کردم نشد.....میگه نمیتونه به این اطلاعات رو در data base ذخیره کنه....خط آخر error میده....

برای انتخاب checkbox از متد checked استفاده کردم با checked states هم امتحان کردم همین مشکل رو داشت.....:عصبانی++::عصبانی++::گر یه:...چیکار کنم....اطلاعات با زدن tik مربوط به ، checkbox عدد بر نمیگردونه..بلکه رشته true/false برمیگردونه........:افسرده:چطور ی اطلاعات رو برگردونم برای تغییر؟؟؟؟؟؟؟؟؟؟؟؟

khanoooooomi
جمعه 24 آبان 1387, 16:49 عصر
لطفا کمکم کنیدددد..................

ALI TT
جمعه 24 آبان 1387, 16:54 عصر
میگه که true و false رو بصورت boolean نمیتونه تبدیل کنه

خوب با چندتا دستور ساده if ، خودت تبدیلشون کن . بعد بزار توی query و ......

khanoooooomi
جمعه 24 آبان 1387, 17:04 عصر
من تازه اولین پروژم هستش للفا در حد یه تازه کار بهم راهنمایی کنید....

khanoooooomi
جمعه 24 آبان 1387, 17:13 عصر
نمیخوام از query استفاده کنم

ALI TT
جمعه 24 آبان 1387, 17:16 عصر
مثلا :

Dim Aswer As String = "اطلاعات خوانده شده"
If Aswer = "Yes" Then CheckBox1.Checked = True Else CheckBox1.Checked = False

khanoooooomi
جمعه 24 آبان 1387, 17:23 عصر
من کلی checkbox دارم ...برای کلشون این دستور رو بنویسم؟؟؟؟؟؟؟؟؟؟؟؟

khanoooooomi
جمعه 24 آبان 1387, 17:30 عصر
این دستوریه که مینویسم برای تغییر اطلاعات در data base:

chk6.CheckState = bsApartmentInformation.Current("tell")


موقع اجرا نمیتونه حالت checkbox رو نشون بده و error میده...:):)

ALI TT
جمعه 24 آبان 1387, 17:37 عصر
متاسفانه من از این روش تا به حال استفاده نکردم . این جور دستورات ( توابع آماده) قدرت تنظیمات دلخواه رو پایین میارن ( شایدم من بلد نیستم ) که امیدوارم اینطور باشه .

s.k711
جمعه 24 آبان 1387, 19:54 عصر
برای انتخاب checkbox از متد checked استفاده کردم با checked states هم امتحان کردم همین مشکل رو داشت.....:عصبانی++::عصبانی++::گر یه:...چیکار کنم....اطلاعات با زدن tik مربوط به ، checkbox عدد بر نمیگردونه..بلکه رشته true/false برمیگردونه........:افسرده:چطور ی اطلاعات رو برگردونم برای تغییر؟؟؟؟؟؟؟؟؟؟؟؟


Salam Duste aziz.Nemitunam farsi benvisam. Ama in code ra bebin:






If Checkbox1.Checked = True Then

in_cmd.Parameters.Add("@ojrat", SqlDbType.Bit).Value = 1))
Else

in_cmd.Parameters.Add("@ojrat", SqlDbType.Bit).Value = 0
End If

amd386
یک شنبه 26 آبان 1387, 08:22 صبح
سلام دوستان عزيز
من هم اين مشكل رو دارم، ولي نتونستم حلش كنم، لطفاً كمكم كنيد.:متفکر:
يه تازه كار

Sub Zero
یک شنبه 26 آبان 1387, 08:53 صبح
از این روشی که گفتین استفاده کردم نشد.....میگه نمیتونه به این اطلاعات رو در data base ذخیره کنه....خط آخر error میده....

برای انتخاب checkbox از متد checked استفاده کردم با checked states هم امتحان کردم همین مشکل رو داشت.....:عصبانی++::عصبانی++::گر یه:...چیکار کنم....اطلاعات با زدن tik مربوط به ، checkbox عدد بر نمیگردونه..بلکه رشته true/false برمیگردونه........:افسرده:چطور ی اطلاعات رو برگردونم برای تغییر؟؟؟؟؟؟؟؟؟؟؟؟

اگه نوع داده هاتون رو Bit گذاشتین مشکلی نباید پیش بیاد احتیاجی هم به دستورات تبدیل ندارین .
ممکنه بگید برای خواندن دیتا و نوشتن اونها در دیتابیس از دیتاست استفاده می کنید یا از SqlCommand اگه از SqlCommand استفاده می کنید اونها رو بنویسید.

s.k711
یک شنبه 26 آبان 1387, 10:51 صبح
سلام.من بارها از اين كد استفاده كردم و مشكلي نداشتم.اگه مشكلتون برطرف نشد كدتون را بگذاريد تا ببينم اشكالش كجاست.

bah_jaf
یک شنبه 26 آبان 1387, 11:44 صبح
دوست عزیر یک تابع با شرایط دستوری دوست عزیزمون Ali TT بنویس اونوقت لازم نیست هی بنویسی فقط بصورت پارامتر بهش میدی خیلی ساده مثلا:


Private Function RetunVal ( ByVal State as integer) As boolean
if state = 1 then
return ture
else
return false
endif
end function

نحوه صدا زدنش هم بصورت زیر میشه:

fieldname = RetVal(Chkbox.value)

mehrnoosh_al62
یک شنبه 26 آبان 1387, 12:48 عصر
فکر میکنم باید تابع فوق رو به شکل زیر تغییر بدی...


PrivateFunction ReturnVal(ByVal State AsBoolean) AsInteger
If state = TrueThen
Return 1
Else
Return 0
EndIf
EndFunction

نحوه صدا زدن :

fieldname = ReturnVal(Chkbox.value)

Sub Zero
یک شنبه 26 آبان 1387, 13:22 عصر
دوستان احتیاجی به این کدها نیست من توی پروژه هام حتی یه خط هم برای این کارها نمینویسم .

mehrnoosh_al62
یک شنبه 26 آبان 1387, 13:44 عصر
دوستان احتیاجی به این کدها نیست من توی پروژه هام حتی یه خط هم برای این کارها نمینویسم .

خود من هم تو پروژم برای insert از StoreProceture استفاده کردم و موقع تعریف پارامتر مستقیما مقادیر Int رو با True,False مقدار دهی کردم و هیچ مشکلی پیش نیومد

khanoooooomi
یک شنبه 26 آبان 1387, 19:00 عصر
سلام دوستان....تونستم مشکلم رو حل کنم انا با تغییر دستورم به این شکل...اما فکر نمیکنم منطقی باشه..نظرتون چیه؟؟
chk6.Checked =val( bsApartmentInformation.Current("tell"))

مهرنوش جان دستور شمارو امتحان میکنم بعد نتیجه رو میگم... به نظرم که تابع بالا باید مشکل رو حل کنه

ممنون

khanoooooomi
یک شنبه 26 آبان 1387, 19:01 عصر
s_k711 ممنون از کمکت اما کار نکرد.....