نمایش نتایج 1 تا 13 از 13

نام تاپیک: مشکل در select where با فارسی در sql express و C#‎

  1. #1

    مشکل در select where با فارسی در sql express و C#‎

    با سلام
    من دارد از sql express و C#‎ استفاده میکنم
    اطلاعات به صورت فارسی در sql express ذخیره میشه و قابل مشاهده هست
    ولی وقتی می خوام select بزنم مثلا
    select * from Mytable where myfield like farsichar
    چیزی بر نمی گردونه
    منظورم از farsichar یک کلمه یا حرف فارسی می باشد

    فکر مینم از unicode دیتابیسم باشه لطفا راهنمایی کنید
    با تشکر

  2. #2
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: مشکل در select where با فارسی در sql express و C#‎

    سلام

    بهتره یه Nهم کنار مورد جستجو بگذاری

    select * from TableName where FieldName Like  N'%"+textbox1.text + '%' 

  3. #3
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    کنار یه ساحل خیلی زیبا
    پست
    922

    نقل قول: مشکل در select where با فارسی در sql express و C#‎

     cmd.CommandText = "Select * from tbbook Where motarjem like '%" + textBoxX6.Text + "%' order by ID";

    اگه رشته هم هست تو کوتیشن بذار

  4. #4

    نقل قول: مشکل در select where با فارسی در sql express و C#‎

    متاسفانه هیچ کدوم جواب نداد
    این مشکل فقط برای فارسی می باشد

  5. #5
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در select where با فارسی در sql express و C#‎

    سلام.
    با همه کلمات مشکل داری یا فقط با کلماتی که شامل حرف ک و ی هست؟.
    کوئری که نوشتید بذارید تا یه نگاه کنیم.

  6. #6

    نقل قول: مشکل در select where با فارسی در sql express و C#‎‎

    نقل قول نوشته شده توسط veniz2008 مشاهده تاپیک
    سلام.
    با همه کلمات مشکل داری یا فقط با کلماتی که شامل حرف ک و ی هست؟.
    کوئری که نوشتید بذارید تا یه نگاه کنیم.

    publicDataTable RetrieveFilterPerson(string PersonSearched)
    {
    DataTable DT = newDataTable();
    SqlConnection Conn = PublicClass.OpenConnection();
    Conn.Open();
    SqlDataAdapter MyCommand = newSqlDataAdapter("SELECT * FROM Persons WHERE PersonName Like '%" + PersonSearched + "%' or PersonCode Like '%" + PersonSearched + "%' order by PersonID DESC", Conn);
    MyCommand.Fill(DT);
    Conn.Close();
    return DT;
    }

    PersonSearched
    یک استرینگ است که در ایجا و وقتی عددی وارد میشود کاملا درست کار میکند
    ولی وقتی یک کله یا حرف فارسی وارد میشود چیزی یافت نمی شود
    برای تمام حروف فارسی مشکل دارد
    با تشکر

  7. #7

    نقل قول: مشکل در select where با فارسی در sql express و C#‎‎


    publicDataTable RetrieveFilterPerson(string PersonSearched)
    {
    DataTable DT = newDataTable
    ();
    SqlConnection Conn = PublicClass
    .OpenConnection();
    Conn.Open();
    SqlDataAdapter MyCommand = newSqlDataAdapter("SELECT * FROM Persons WHERE PersonName Like '%" + PersonSearched + "%' or PersonCode Like '%" + PersonSearched + "%' order by PersonID DESC"
    , Conn);
    MyCommand.Fill(DT);
    Conn.Close();
    return
    DT;
    }




  8. #8
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در select where با فارسی در sql express و C#‎

    فیلد فارسی رو از چه نوعی گرفتید؟
    این کد رو هم امتحان کنید :
    SqlDataAdapter MyCommand = newSqlDataAdapter("SELECT * FROM Persons WHERE PersonName Like N'%" + PersonSearched.Trim() + "%' or PersonCode Like N'%" + PersonSearched.Trim() + "%' order by PersonID DESC", Conn);

  9. #9

    نقل قول: مشکل در select where با فارسی در sql express و C#‎‎

    نقل قول نوشته شده توسط veniz2008 مشاهده تاپیک
    فیلد فارسی رو از چه نوعی گرفتید؟
    این کد رو هم امتحان کنید :
    SqlDataAdapter MyCommand = newSqlDataAdapter("SELECT * FROM Persons WHERE PersonName Like N'%" + PersonSearched.Trim() + "%' or PersonCode Like N'%" + PersonSearched.Trim() + "%' order by PersonID DESC", Conn);

    یا گذاشتن N درست شد
    ولی چرا باید N را بزارم؟؟
    چطور میتونم بدون N این کارو انجام بدم

    نوع فیلد فارسی nvarchar

  10. #10
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در select where با فارسی در sql express و C#‎

    معمولا زمانیکه از پارامترها استفاده کنید دیگه نیازی به استفاده از N نیست. حرف N به sql میفهمونه که میخوایم با داده های یونیکد(که حروف فارسی هم جزیی از این داده ها هستند کار کنیم).
    ولی بهترین راه حل در ADO، همیشه stored procedure بوده. هم از لحاظ سرعت، هم از لحاظ امنیت و هم برای پروژه های متوسط رو به بالا کارایی واقعی خودشو نشون میده و درگیر اینجور مسائل نمی شید.
    اینم بگم که روش کدنویسی تون منسوخ شده و 100 درصد خطرناکه و براحتی قابل هک شدن هست(بهش میگن sql injection ) که برای حل این مشکل بایستی از پارامترها استفاده کنید که قبلا بارها در سایت دربارش بحث شده.
    موفق باشید.

  11. #11

    نقل قول: مشکل در select where با فارسی در sql express و C#‎


    publicDataTable RetrieveFilterPerson(string PersonSearched)
    {
    DataTable DT = newDataTable();
    SqlConnection Conn = PublicClass.OpenConnection();
    Conn.Open();
    SqlDataAdapter MyCommand = newSqlDataAdapter("SELECT * FROM Persons WHERE PersonName Like @PersonSearched or PersonCode Like @PersonSearched order by PersonID DESC", Conn);
    MyCommand.SelectCommand.Parameters.AddWithValue(
    "@PersonSearched", "%"+PersonSearched+"%");
    MyCommand.Fill(DT);
    Conn.Close();
    return DT;
    }



    [RTL]
    اینجوری خوبه مهندس؟؟

    [/RTL]

  12. #12
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در select where با فارسی در sql express و C#‎

    بله منظورم به همین شکل بود ولی اگر از stored procedure ها استفاده کنی قطعا خیلی بهتر خواهد بود.
    موفق باشید.

  13. #13

    نقل قول: مشکل در select where با فارسی در sql express و C#‎

    من خیلی وقت پیش این مشکل رو داشتم ! صرفا با گذاشتن یک حرف N درست میشه

تاپیک های مشابه

  1. مشکل در ذخیره کردن فیلد فارسی در SQL Server
    نوشته شده توسط behrooz در بخش برنامه نویسی در Delphi
    پاسخ: 7
    آخرین پست: جمعه 27 بهمن 1391, 22:26 عصر
  2. مشکل با ریکاوری و بازیابی از یانک sql express
    نوشته شده توسط alicomputer در بخش VB.NET
    پاسخ: 2
    آخرین پست: پنج شنبه 23 شهریور 1391, 01:40 صبح
  3. سوال: مشکل در نوشتن برخی کلمات فارسی در SQL 2008
    نوشته شده توسط oliya24 در بخش SQL Server
    پاسخ: 1
    آخرین پست: جمعه 14 آبان 1389, 20:10 عصر
  4. مشکل در ذخیره داده های فارسی در SQL 2005
    نوشته شده توسط nilmil_nil در بخش C#‎‎
    پاسخ: 5
    آخرین پست: شنبه 02 آبان 1388, 22:45 عصر
  5. سوال: مشکل در select با کاراکتر فارسی
    نوشته شده توسط jas1387 در بخش VB.NET
    پاسخ: 4
    آخرین پست: دوشنبه 28 مرداد 1387, 13:32 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •