PDA

View Full Version : اشکال در دستور where



darya_22222
پنج شنبه 05 مهر 1386, 13:56 عصر
دردستور where وقتی دو شرط قرار میدم که یکی از نوع int ودیگری از نوع varchar میباشد یعنی به صورت زیر:
where id=@textbox or name='@textbox'

وقتی در textbox عدد وارد می کنم رکورد مورد نظر را درdatagridview نمایش میده ولی اگر اسم وارد کنم error می گیره

mrrajabi
پنج شنبه 05 مهر 1386, 16:46 عصر
زبان این دستورا چیه الان؟
خدا وکیلی خودتون میتونید بخونید؟

کداتونو داخل تگ کد بذارین

SYNDROME
پنج شنبه 05 مهر 1386, 17:07 عصر
با سلام
Error مورد نظر را بنویسید.
موفق باشید

darya_22222
پنج شنبه 05 مهر 1386, 21:03 عصر
دردستور where وقتی دو شرط قرار میدم که یکی از نوع int ودیگری از نوع varchar میباشد یعنی به صورت زیر:
where id=@textbox or name='@textbox'

وقتی در textbox عدد وارد می کنم رکورد مورد نظر را در datagridview نمایش میده ولی اگر اسم وارد کنم error می گیره که فرمت صحیح نیست.
http://www.developercenter.ir/Forum/images/statusicon/user_online.gif http://www.developercenter.ir/Forum/images/buttons/report.gif (http://www.developercenter.ir/Forum/report.php?p=18912) http://www.developercenter.ir/Forum/images/buttons/post_thanks.gif (http://www.developercenter.ir/Forum/showthread.php?do=post_thanks_add&p=18912)

Hojat_ce
جمعه 06 مهر 1386, 00:18 صبح
ودیگری از نوع varchar میباشد

به نظرم از nvarchar استفاده کنید درست بشه.

MShirzadi
جمعه 06 مهر 1386, 04:49 صبح
وقتی در textbox عدد وارد می کنم رکورد مورد نظر را در datagridview نمایش میده ولی اگر اسم وارد کنم error می گیره که فرمت صحیح نیست.خوب خسته نباشید!
بابا جون وقتی شما بخوای یه string رو (همونجایی که اسم ولرد می کنی) به int (همونجایی که برابر id )قرار می دی تبدیل کنی به همین پیغام خطا بر می خوری دیگه . این کاملا منطقی هست

شما برای گرفتن دو داده با نوع مختلف باید دو تا TextBox بزاری

darya_22222
جمعه 06 مهر 1386, 10:36 صبح
خوب برای textbox search که نمی تونم چند تا textbox تعریف کنم شکلش به هم می خوره و در کد هم or گذاشتم

Hojat_ce
جمعه 06 مهر 1386, 11:25 صبح
خوب برای textbox search که نمی تونم چند تا textbox تعریف کنم

لازم نیست چندتا TextBox تعریف کنید.
dataType را nvarchar تعریف کنید و از یک textBox استفاده کنید.

where search='"+textBox+"'

SYNDROME
جمعه 06 مهر 1386, 11:31 صبح
با سلام


لازم نیست چندتا TextBox تعریف کنید.
dataType را nvarchar تعریف کنید و از یک textBox استفاده کنید.

where search='"+textBox+"'

اگر منظورتان از تبدیل نوع عددی به Nvarchar است باید به این نکته دقت کنید که آن وقت برای استفاده از توابعی مانند Sum باید دوباره نوع nvarchar را به عددی تبدیل کنید.
به جای این کار می توانید کنترل کنید که اگر کاربری می خواهد بر اساس عدد جستجو کند فقط بتواند عدد وارد کند.
موفق باشید

MShirzadi
جمعه 06 مهر 1386, 15:33 عصر
توی برنامه ات می تونی کنترل کنی که اگر مقدار textbox از نوع عددی بود مقدار id برابر او این textbox قرار بگیره و اگر از نو string بود مقدار name برابر او قرار بگیره
یعنی باید 2 خط دستور بنویسی برای Select و در یک زمان تنها یکی از اونها اجرا می شه
موفق باشی دوست عزیز