PDA

View Full Version : مشکل با کاراکتر ' تک کوتیشن در هنگام کوئری گرفتن از پایگاه داده



s4lish
شنبه 30 دی 1391, 09:59 صبح
با سلام.
وقتی میخوام یه اسمی وارد پایگاه داده بکنم که توش ' تک کوتیشن داره برنامه ایراد میگیره و
یا زمانی که با یه دستور select نامی که توش تک کوتیشن باشه.
میخواستم بدونم ایراد از کجاست.
با تشکر

danialafshari
شنبه 30 دی 1391, 10:14 صبح
سلام
درست متجه نشدم
ولی من از این کد استفاده می کنم:
SELECT pass FROM pass_admin WHERE (pass = '"+txtPass.Text.Trim()+"')
موفق باشی

sgn2006
شنبه 30 دی 1391, 10:47 صبح
سلام
تا اونجایی که من متوجه شدم می خوای یه متن وارد کنی که وسط اون از '(تک کوتیشن) استفاده شده ... اگه درست فهمیدم باید
تک کوتیشن رو به صورت
''''

بنویسی یعنی از چهار تا تک کتیشن اسفاده کنی تا خروجی بهت یه تک کوتیشن نشون بده...
به عنوان مثال
Select * From t1 where Name Like '% saeed'''' %'

این مثال دنبال افرادی که اسم آنها شبیه به ' Saeed هستند پیدا می کنه

موفق باشی

s4lish
شنبه 30 دی 1391, 11:12 صبح
کد من این شکلیه دوستان یک جست و جوی اندیس دار توی رویداد تغییرنوشتار یک تکست باکس نوشتم.


s1 = "select * FROM STDTBL where nwriter LIKE N'%" + tserch.Text + "%' OR nSTD LIKE N'%" + tserch.Text + "%' OR organ LIKE N'%" + tserch.Text + "%' OR typeSTD LIKE N'%" + tserch.Text + "%'";


وقتی توی اون تکست باکس tserch کلمه ای که توش ' باشه ایرور میگیره...

همین ایرور رو هم وقتی میخوام چیزی وارد دیتابیس کنم هم هست. با تشکر

Mahmoud.Afrad
شنبه 30 دی 1391, 11:56 صبح
باید از استورپروسیجر و یا پارامتر استفاده کنید.
نمونه با استفاده از پارامتر:
برای اینزرت:

cmd = new SqlCommand("insert into tbl(name) values(@name)");
cmd.Parameters.AddWithValue("@name", textBox1.Text);


برای سلکت:

cmd.CommandText = "select name from tbl where name like '%' + @n + '%' ";
cmd.Parameters.AddWithValue("@n", textBox1.Text);

afshin_1989
شنبه 30 دی 1391, 12:14 عصر
دوست عزیز از کاراکتر \ قبل از اون باید استفاده کنی.البته اگر با لینک کار میکردی این مشکل دیگر وجود نداشت ولینک راحت تر هم هست.

s4lish
شنبه 30 دی 1391, 12:16 عصر
ممنونم بابت راهنمایی فقط چون من با کلاس ها و توابع گوناگون نوشتم و یکم تو این مرحله از کار تغییر این کد ها برام خیلی زمان بر خواهد بود.
اگر بشه با دستورات هندلر یجورایی اخطارشو نادیده بگیرم خوب میشه.

s4lish
شنبه 30 دی 1391, 12:17 عصر
دوست عزیز از کاراکتر \ قبل از اون باید استفاده کنی.البته اگر با لینک کار میکردی این مشکل دیگر وجود نداشت ولینک راحت تر هم هست.

منظور از لینک چیه میشه یکم توضیح بدید که چطور استفاده میکردم ؟

hamid_hr
شنبه 30 دی 1391, 15:08 عصر
textbox1.text.replace("'","''")

با اين نميشه تك كوتيشن رو به دو تا تك كوتيشن تبديل كرد و بعد فرستاد

فقط پيشنهاد بود تست نكردم