PDA

View Full Version : مبتدی: مشکل با کاراکتر '



meysam_online2012
چهارشنبه 07 اسفند 1392, 18:33 عصر
سلام
من یه دستور select نوشتم ولی توی ورودی نمی تونم کاراکتر ' وارد کنم میشه بگین چیکار باید بکنم؟

ممنون

hamid_hr
چهارشنبه 07 اسفند 1392, 18:52 عصر
دستور select رو میشه بزاری؟

meysam_online2012
چهارشنبه 07 اسفند 1392, 18:55 عصر
دستور select رو میشه بزاری؟


"SELECT english,farsi FROM dic WHERE dic.english LIKE '" + CurrentDic.English + "'"

اگه مقدار currentdic.english کاراکتر ' داشته باشه ارور میده

mandanim
چهارشنبه 07 اسفند 1392, 22:35 عصر
باید قبلش \ بذاری

NasimBamdad
چهارشنبه 07 اسفند 1392, 22:51 عصر
یه @ اول رشته ات بگذار .

meysam_online2012
پنج شنبه 08 اسفند 1392, 19:36 عصر
یه @ اول رشته ات بگذار .

این روش و روش قبل هم جواب نمیدن

erfan_urchin
پنج شنبه 08 اسفند 1392, 20:28 عصر
کدت درسته. خطایی که میده رو بنویس ببینیم چیه؟؟؟

meysam_online2012
پنج شنبه 08 اسفند 1392, 20:56 عصر
کدت درسته. خطایی که میده رو بنویس ببینیم چیه؟؟؟

An exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll but was not handled in user code

Additional information: Syntax error (missing operator) in query expression 'dicFarsi.english LIKE 'a mason's tools''.

این خطاییه که میده به خاطر اون کاراکتر ' خطا میده

erfan_urchin
پنج شنبه 08 اسفند 1392, 22:49 عصر
آها فکر کنم داره از چیزی که داخل ' نوشتی ایراد میگیره
CurrentDic چیه؟؟؟ کلاسه؟؟؟ English چیه؟ متده؟؟؟
احتمالا CurrentDic.English مشکلی داره

Mahmoud.Afrad
پنج شنبه 08 اسفند 1392, 23:55 عصر
در sql ' برای شناسایی رشته هست(دو طرف رشته ' قرار میگیره) هر جا بهش برسه ابتدا یا انتهای رشته رو تعیین میکنه و اگر تعداد ' ها زوج نباشه(در رشته کوئری) مشکل بوجود میاد.
باید مقدار رو بصورت پارامتر ارسال کنی.

erfan_urchin
جمعه 09 اسفند 1392, 19:58 عصر
در sql ' برای شناسایی رشته هست(دو طرف رشته ' قرار میگیره) هر جا بهش برسه ابتدا یا انتهای رشته رو تعیین میکنه و اگر تعداد ' ها زوج نباشه(در رشته کوئری) مشکل بوجود میاد.
باید مقدار رو بصورت پارامتر ارسال کنی.
مگه این کدارو توی SQL نوشتی؟؟؟؟!!!!!!! من فکر کردم تو C# توی SqlDataAdapter نوشتی که توی " " گذاشتی کدتو!!!!

Mahmoud.Afrad
جمعه 09 اسفند 1392, 20:17 عصر
مگر
SELECT english,farsi FROM dic WHERE dic.english LIKE 'anything'
یک رشته کامند sql نیست. دیتاآداپتر هم این کامند رو به sqlserver ارسال خواهد کرد.

' در sql
و
" در خانوده زبانهای C
معرف رشته هاست.

tooraj_azizi_1035
شنبه 10 اسفند 1392, 18:31 عصر
سلام
رشته رو قبل از فرستادن به SQL Server بفرست داخل این متد:
public static string DoQuotes(string sql)
{
if (sql == null)
return "";
else
return sql.Replace("'", "''");
}

mahdi87_gh
شنبه 10 اسفند 1392, 19:08 عصر
دوست عزیز. همیشه از پارامتر استفاده کنید.
پیشنهاد من اینه که کلا سوئیچ کنید روی Entity Framework. مزایای بسیاری داره و شما دیگه لازم نیست به این شکل کوئری نویسی کنید.

erfan_urchin
شنبه 10 اسفند 1392, 23:23 عصر
مگر
SELECT english,farsi FROM dic WHERE dic.english LIKE 'anything'
یک رشته کامند sql نیست. دیتاآداپتر هم این کامند رو به sqlserver ارسال خواهد کرد.

' در sql
و
" در خانوده زبانهای C
معرف رشته هاست.
درسته من هم منظورم همین بود. من فکر میکردم این کدهارو توی C# نوشته به خاطر همین همون اول مشکل دابل کتیشن رو بهش نگفتم چون فکر میکردم تو C# نوشته