PDA

View Full Version : دستور '%هر چی% 'LIKE جواب نمی ده



shahali
شنبه 04 اسفند 1386, 15:14 عصر
سلام
یه مشکل برام پیش اومده چند بارم سرچ کردم ولی چیزی پیدا نشد
مشکلم اینه که از این کد استفاده می کنم ولی جواب نمی ده


dataadapterForSearch.SelectCommand.CommandText = "SELECT * FROM Ahmad WHERE Site LIKE '%@VAR%';";
dataadapterForSearch.SelectCommand.Parameters.AddW ithValue("@VAR", textBox2.Text);

ولی وقتی مستقیم در دستور اس کیو ال خودم وارد می کنم درست کار می کنه
کلمه مورد جستجو هم فارسی نیست و از N در دستور LIKE استفاده کردم

یا حق

choobin84
شنبه 04 اسفند 1386, 17:35 عصر
@VAR
احتمالا مشکلتون توی همین 4 تا حرفه.
آیا @ هم توی جستجو باید باشه.
آیا حروف باید کوچیک باشن یا بزرگ؟

mehdi_9009
شنبه 04 اسفند 1386, 21:20 عصر
از این کد استفاده کن
("SELECT * FROM table where [filed]like '" + textBox10.Text + "%' order by [filed]desc ");

hassan razavi
شنبه 04 اسفند 1386, 22:35 عصر
نوع پارامتر را مشخص کنید ابتدا و بعد مقدار دهی کنید. مشکل من اینطوری برطرف شد.

net.میلاد(منجی)
شنبه 04 اسفند 1386, 22:55 عصر
dataadapterForSearch.SelectCommand.CommandText = "SELECT * FROM Ahmad WHERE Site LIKE '%@VAR%';";
dataadapterForSearch.SelectCommand.Parameters.AddW ithValue("@VAR", textBox2.Text);


فکر میکنم ایراد کد شما اینجا باشه!:
'%@VAR%'
به این تر تیب اصلاحش کن:
%'@VAR'%

shahali
شنبه 04 اسفند 1386, 23:00 عصر
دمت گرم آقا مهدی .....
با ایده ی آقا مهدی درست شد...
پس فایده AddWithValue اینجا چیه ....واقعا که....
از دست این مایکروسافت....؟

اَرژنگ
یک شنبه 05 اسفند 1386, 01:19 صبح
دمت گرم آقا مهدی .....
با ایده ی آقا مهدی درست شد...
پس فایده AddWithValue اینجا چیه ....واقعا که....
از دست این مایکروسافت....؟
۱)روشی که گفت شد ههمچین خوب نیست، بیخود کد اس‌کیو‌ال را اینطوری hard code نکنید.
۲)کدتان اینطوری تغییر بدید:
dataadapterForSearch.SelectCommand.CommandText = "SELECT * FROM Ahmad WHERE Site LIKE @VAR;";
dataadapterForSearch.SelectCommand.Parameters.AddW ithValue("@VAR", "%"+textBox2.Text+"%");
۳) تا جایی که میببینم دارید از
textBox2.Text و کد اسکیو ال را دارید باهم قاطی میکنید، معماری ۳ لایه را مطالعه کنید
۴)هیچ کجآیه ایم مسعله به مایکروسافت ربطی نداشت.

اَرژنگ
یک شنبه 05 اسفند 1386, 01:25 صبح
از این کد استفاده کن
("SELECT * FROM table where [filed]like '" + textBox10.Text + "%' order by [filed]desc ");
روشتان را تغییر بدید: از SelectCommand.Parametersاستتفاده کنید، روششی که پیشنهاد دادید امنیت ندارد و Sql Injection Attacks ازش میتواند سواستفاده کند.

choobin84
یک شنبه 05 اسفند 1386, 06:44 صبح
روشتان را تغییر بدید: از SelectCommand.Parametersاستتفاده کنید، روششی که پیشنهاد دادید امنیت ندارد و Sql Injection Attacks ازش میتواند سواستفاده کند.
اگر یه کنترل بذاره که تمام کوتیشن ها رو برداره، آیا اید دوباره روش تغییر بده؟

اَرژنگ
یک شنبه 05 اسفند 1386, 11:08 صبح
اگر یه کنترل بذاره که تمام کوتیشن ها رو برداره، آیا اید دوباره روش تغییر بده؟
شاید، ولی اگر هم بشه، چرا ازیک روش ماسمالی استفاده کنند به جایه استفاده از یک روش سفت و محکم؟

choobin84
یک شنبه 05 اسفند 1386, 13:23 عصر
شاید، ولی اگر هم بشه، چرا ازیک روش ماسمالی استفاده کنند به جایه استفاده از یک روش سفت و محکم؟
کجای کار ماست مالیه نمی دونم؟ شاید منظور همون کوتیشنه ، عجب ، باید مایکروسافت خیلی گیج باشه که یه همچین امکانی رو فراهم کرده.
لطفا علمی توضیح بدید.

shahali
یک شنبه 05 اسفند 1386, 14:23 عصر
با سلام خدمت شما دوست عزیز
برای اطلاع خدمت شما عرض کنم که
روش شما را هم امتحان کردم ... اما نشد که نشد




dataadapterForSearch.SelectCommand.Parameters.AddW ithValue("@var","%"+textBox2.Text+"%");
dataadapterForSearch.SelectCommand.CommandText = "SELECT * FROM Ahmad WHERE Site LIKE '@var';";


http://aycu33.webshots.com/image/44112/2001656052574283273_th.jpg (http://allyoucanupload.webshots.com/v/2001656052574283273)

به نظر من این یک ایراد محسوب می شود....باگ که شاخ و دم نداره....
شاید هم من بلد نیستم:افسرده:

فقط این جواب داد



dataadapterForSearch.SelectCommand.CommandText = "SELECT * FROM Ahmad WHERE Site LIKE '%" + textBox2.Text + "%';";

اَرژنگ
یک شنبه 05 اسفند 1386, 14:33 عصر
کجای کار ماست مالیه نمی دونم؟ شاید منظور همون کوتیشنه ، عجب ، باید مایکروسافت خیلی گیج باشه که یه همچین امکانی رو فراهم کرده.
لطفا علمی توضیح بدید.
علمی؟ فواید استفاده از پارامترها را توضیح‌ بدم؟‌

اَرژنگ
یک شنبه 05 اسفند 1386, 14:36 عصر
به کد دقت کنید!




dataadapterForSearch.SelectCommand.Parameters.AddW ithValue("@var","%"+textBox2.Text+"%");
dataadapterForSearch.SelectCommand.CommandText = "SELECT * FROM Ahmad WHERE Site LIKE @var;";


چچیزی که امتحان کردید روش من نیست، روش درست این کار است. روشها من و تو و غیره و ذالک ندارند، لاقل کدم را درست کپی و پیست کرده بودید دلم نمیسوخت :(


با سلام خدمت شما دوست عزیز
برای اطلاع خدمت شما عرض کنم که
روش شما را هم امتحان کردم ... اما نشد که نشد




dataadapterForSearch.SelectCommand.Parameters.AddW ithValue("@var","%"+textBox2.Text+"%");
dataadapterForSearch.SelectCommand.CommandText = "SELECT * FROM Ahmad WHERE Site LIKE '@var';";


http://aycu33.webshots.com/image/44112/2001656052574283273_th.jpg (http://allyoucanupload.webshots.com/v/2001656052574283273)

به نظر من این یک ایراد محسوب می شود....باگ که شاخ و دم نداره....
شاید هم من بلد نیستم:افسرده:

فقط این جواب داد



dataadapterForSearch.SelectCommand.CommandText = "SELECT * FROM Ahmad WHERE Site LIKE '%" + textBox2.Text + "%';";

shahali
یک شنبه 05 اسفند 1386, 14:39 عصر
حرف شما کاملا درست
در این مورد خودم تجربه داشتم
با یک شرط و چک کردن استرینگ میشه این قضیه رو جلو شو گرفت
مسئله سه لایه ای که گفتید مهمه
اما چه میشه کرد..... راهی هست

اَرژنگ
یک شنبه 05 اسفند 1386, 14:41 عصر
حرف شما کاملا درست
در این مورد خودم تجربه داشتم
با یک شرط و چک کردن استرینگ میشه این قضیه رو جلو شو گرفت
مسئله سه لایه ای که گفتید مهمه
اما چه میشه کرد..... راهی هست
جواب که دادم! مشکل چیه؟ راه برایه چی؟‌ اگر ۲ خط کد را درست کپی و پیست نمیکنند هیچ راهی نیست!

shahali
یک شنبه 05 اسفند 1386, 14:43 عصر
خیلی ببخشید
کاملا حرف شما درسته
چون جواب ها سریع فرستاده شد .....
موضوع کاملا حل شد

اَرژنگ
یک شنبه 05 اسفند 1386, 14:51 عصر
خیلی ببخشید
کاملا حرف شما درسته
چون جواب ها سریع فرستاده شد .....
موضوع کاملا حل شد
شما ببخشید! دوست عزیز باور کنید گفتم شاید من یک چیزی ر امتوجه نشدم برایه همین پرسیدم و گرنه قصدم این نبود که باعث اینکه خودتان را بد احساس کنید بشم.
حرف شما هم درسته، شاید روش جواب دادن من درست نیست. اگر پیشنهادی به اینکه چگونه دوستانه‌تر بنویسم هست پیام خصوصی بفرستید متشکر میشم ! :)

choobin84
یک شنبه 05 اسفند 1386, 20:43 عصر
علمی؟ فواید استفاده از پارامترها را توضیح‌ بدم؟‌
توضیح بدید.
پرسیدن داره؟

اَرژنگ
یک شنبه 05 اسفند 1386, 23:03 عصر
توضیح بدید.
پرسیدن داره؟
http://technet.microsoft.com/en-us/library/ms161953.aspx
http://aspalliance.com/385