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

نام تاپیک: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

  1. #1

    Question مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    با سلام خدمت اساتید محترم...

    برنامه ای به زبان C#‎‎‎‎ تحت پایگاه داده Accsess نوشته ام که مشکل زیر را دارد :

    یک text box با نام txt_name قرار دادم که از طریق اون، کاربر میتونه کلیدواژه ای از لیست اسامی رو جستجو کنه به طوری که با وارد کردن لحظه ای هر کاراکتر، فیلدهای مشابه اون رو از پایگاه داده استخراج و در یک Data Grid قرار میده...
    مشکلی که هست اینه که با وارد کردن اسمی دارای " ی " مثلا ابراهیم ، تا حرف هـ مشکی در استخراج نداره ولی با رسیدن به خود حرف ی گویی که کاراکتری خارج از اسامی موجود در لیست پایگاه داده زده شده و در نتیجه استخراج متوقف شده و Data Grid ما محتویاتش خالی نمایش داده می شود!!!

    کد استفاده شده :
    SELECT Name , userName , Password from Customers where Name like
    ' %" + () txt_name.Text.ToString + " '

    پیشاپیش از پاسخ و راهنمایی دوستان عزیز ممنونم..

  2. #2

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    یافتم، بالاخره توی 32 صفحه بعد پیداش کردم
    https://barnamenevis.org/showthread.p...B1%D8%B3%DB%8C

  3. #3

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    متاسفانه راهکارهای دوستان در صفحه پیشنهادی شما مشکلی رو حل نکرد....

    یعنی هیچ برنامه نویس حرفه ای نداریم تو barnamenevis.org که پاسخ قطعی بده تا مشکل من و امثال من که چنین مشکلی دارند و کم هم نیستند، حل بشه؟!؟؟

  4. #4

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    شما به جای اینکه ی را بزنید با شیفت+X این کار رو انجام بده --> ي و بالعکس. اگه نتیجه جستجو دلخواه بود که اون تاپیک به دردتون میخوره وگرنه ایراد از ورود داده های غلط به دیتا بیس نیست و باید بیشتر توضیح بدید.
    ی های موجود در دیتابیس شما ی عربی است یا اینکه ی فارسی است ولی این کیبردی که با اون کار می کنید ي عربی وارد می کند.
    لطفا به این سوال جواب بدین: ی هایی که در تکت باکس نمایش داده می شود نقطه دارد؟

  5. #5

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    ضمن تشکر،

    در ورود اطلاعات به text Box ، ی به صورت فارسی ( بدون دو نقطه زیرین یعنی ي ) هستش...

    ضمن اینکه باید بگم با تایپ ی عربی به هنگام ورود اطلاعات در تکست ( ي ) ، مشکل کاملا حل می شه.

    راهکارهایی که دوستان ارائه داده بودن از جمله تبدیل ی فارسی به عربی هنگام جستجو ( در رویداد KeyPress مربوط به text Box ) اثر بخش نبود...

    بسیار ممنون می شم مشکل بنده رو حل و فصل کنین..

  6. #6

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    ضمن اینکه باید بگم با تایپ ی عربی به هنگام ورود اطلاعات در تکست ( ي ) ، مشکل کاملا حل می شه.
    تبدیل ی فارسی به عربی هنگام جستجو اثر بخش نبود، آره، توی همون تاپیک هم گفته شد.
    ولی آخر اون تاپیک که گفته شد برای حفظ یکپارچگی پایگاه داده بهتره کلّ ي ها رو به ی تبدیل کرده و در دیتابیس ذخیره کنیم!
    همین کدی که مدیر بخش VB.Net دادن:
    update [TblCustomer] set [FldName] = Replace([FldName],'ی','ي')

    البته کل داده ها رو باید آپدیت کنید و ي ها رو با ی عوض کنید تا نیازی به تبدیل ي به ی موقع جستجو باشیم!
    موفق باشید.

  7. #7
    کاربر دائمی
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    خراسان رضوی - نیشابور
    پست
    188

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    سلام من همین مشکلو داشتم البته نه فقط "ی " کلمه های دیگه هم بود یادم نیس
    بعد یه فایل دی ال ال پیدا کردم که باید اونو کپی میکردی تو سیستم تا درست شه ، دقیق نمیدونم مسیرش کجا بود فک کنم system 32بود. بعد دیگه این مشکل پیش نمیومد
    واست میل کنم؟

  8. #8
    کاربر دائمی آواتار sobaisobai
    تاریخ عضویت
    آذر 1388
    محل زندگی
    Tehran
    پست
    490

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    نقل قول نوشته شده توسط bozhmehrani مشاهده تاپیک
    سلام من همین مشکلو داشتم البته نه فقط "ی " کلمه های دیگه هم بود یادم نیس
    بعد یه فایل دی ال ال پیدا کردم که باید اونو کپی میکردی تو سیستم تا درست شه ، دقیق نمیدونم مسیرش کجا بود فک کنم system 32بود. بعد دیگه این مشکل پیش نمیومد
    واست میل کنم؟
    خب بذار تو تاپیک تا همه استفاده کنن دوست عزیز

  9. #9
    کاربر دائمی
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    خراسان رضوی - نیشابور
    پست
    188

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    http://s2.picofile.com/file/7226547953/kbdfa.dll.html
    آدرسشو یادم دقیق یادم نیس
    مطمئن شدم میزارم

  10. #10

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )


  11. #11
    کاربر تازه وارد
    تاریخ عضویت
    دی 1389
    محل زندگی
    وارنا
    پست
    69

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    سلام مشکل به راحتی و صد درصد قابل حل است فقط نکته ای که اینجانب به آن ایمان دارم این است که مهندسین مایکروسافت هیچ راه غیر قابل حلی برایشان نیست و هیچگاه برنامه نویسی را به حدی سخت نمی کنند که کاربر بخواهد ابتدا Replace کند بعد یه کاردیگه و بعد ..........
    راه حل به این شکل است که دقیقا قبل از like از حرف N استفاده کنید
    مثال
    SELECT * FROM tbl WHERE col LIKE N'%ی%'

  12. #12
    کاربر دائمی آواتار hossein_sh2008
    تاریخ عضویت
    مهر 1387
    محل زندگی
    استان فارس
    پست
    149

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    سلام دوستان
    من اين مشكل رو داشتم و وقتي بررسي كردم متوجه شدم كه يك نرم افزار تصحيح كيبورد نصب كردم كه مشكل از اونه كه با حذف اون مشكلم حل شد
    شما هم يه جستجويي بكنيد شايد مشكلتون اين بود

  13. #13

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    سلام
    من برا رفع اين مشكل اين كارو كردم
    اول يك پروسيجر پيدا كردم كه كل ديتابيسو به صورت يك پارچه در اورد يعني همه "ي" و "ی" و "ك" و "و" و "پ" و ... رو يارچه كرد
    اين كد پروسيجر كه پيداش كردم

    Create procedure [dbo].[ChangeCodePage]
    as

    select ROW_NUMBER() over (order by TBLs.TABLE_NAME, COLs.COLUMN_NAME) Row, TBLs.TABLE_NAME TblName, COLs.COLUMN_NAME ColName
    into #t
    from INFORMATION_SCHEMA.TABLES TBLs
    join INFORMATION_SCHEMA.COLUMNS COLs on TBLs.TABLE_NAME = COLs.TABLE_NAME
    where TABLE_TYPE = 'BASE TABLE'
    and DATA_TYPE in ('char', 'nchar', 'varchar', 'nvarchar')

    declare @x varchar(1000)

    create table #errors(Error varchar(1000))

    declare @i int
    set @i = 0

    while 1 = 1
    begin
    set @i = (select top 1 Row from #t where Row > @i)
    if @i is null
    break

    select @x = 'update [' + TblName + '] set [' + ColName + '] = Replace( Replace( Replace([' + ColName + '], nchar(1603), nchar(1705)), nchar(1610), nchar(1740)), nchar(1609), nchar(1740))'
    from #t
    where Row = @i

    begin try
    exec(@x)
    end try

    begin catch
    insert into #errors
    values(char(13) + char(10) + 'ERROR: ' + char(13) + char(10) + @x + char(13) + char(10))
    end catch
    end

    select *
    from #errors

    print 'CODE PAGE GHANGING DONE!'

    drop table #t
    drop table #errors


    طرز استفاده از اين كد هم راحته
    اول تو sql اجراش كنين تا پروسيجر ساخته بشه بعد پروسيجر رو اجرا كنين

    exec ChangeCodePage


    بعد تو برنامه خودم هر دستوري رو ميخوام به sql پاس بدم رو با يك تابع حروف "ي" و "ك" و "و" و ... رو به صورت يكپارچه مثل ديتابيس در مياره بعد ميفرسته تو ديتابيس

    اينم تابع تو C#‎‎ من
     public string ChengCode(string str)
    {
    return str.Replace((char)1603, (char)1705).Replace((char)1610, (char)1740).Replace((char)1609, (char)1740);
    }


    مثلا اگه بخواين دستورات داخل متقيير sqlcmd رو اجرا كنين قبل از اجرا بايد اين كارو بكنين
    sqlcmd = ChengCode(sqlcmd);


    ديگه هيچ مشكلي با انواع مختلف صفحه كليد ندارم و نرم افزار اضافي هم نميخواد نصب كنم

  14. #14
    کاربر تازه وارد آواتار hosaini
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    شیراز
    سن
    43
    پست
    40

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )



    • update
    • (((A01setA02=LTRIM(RTRIM(Replace(REPLACE(A02,char(223),char(152)),nchar(1610),nchar(1740

  15. #15

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    با سلام
    نوشتن شرط به صورت زیر این مشکل رو حل می کنه
    select * from tbl where
    'علی'name=N

  16. #16

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    بفرمایید این کد ها برای جستجو هستش برای عد و رشته فرق میکنه
                        case "شماره سند": { query = "select * from Tbl_AddFoctorKhedmat where convert(varchar,A_Doc) LIKE N'%" + TxtSearch.Text + "%'"; break; }
    case "شماره فاکتور": { query = "select * from Tbl_AddFoctorKhedmat where convert(varchar,A_Foc) LIKe N'%" + TxtSearch.Text + "%'"; break; }
    case "کد خدمات": { query = "select * from Tbl_AddFoctorKhedmat where convert (varchar,A_CodeKhedemat) LIKE N'%" + TxtSearch.Text + "%'"; break; }
    case "نام سرويس": { query = "select * from Tbl_AddFoctorKhedmat where A_NameServic LIKE N'%" + TxtSearch.Text + "%'"; break; }
    case "شرح و حال سرويس": { query = "select * from Tbl_AddFoctorKhedmat where A_Distrebuite LIKE N'%" + TxtSearch.Text + "%'"; break; }
    فقد این رو در نظر بگرید که بعد از حرف لاک Like N'"+txtname.text+"' حرف N فراموش نشه وقتی حرف N رو قرار بدید مشکل شما حل میشود و مقدار ک و ی را پیدا میکند برای شما و با مشکل بر خورد نمیکنید.

  17. #17

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    damet garm ba harf e zer do nogheht

  18. #18
    کاربر دائمی
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    کرج
    پست
    310

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    سلام

    وقی اطلاعات تو bindingsource هستش استفاده از N اررور داره
    bindingsource1.filter="name like N'%"+txtName.text+"%'



    error
    Syntax error: Missing operand after ''%ح%'' operator

  19. #19
    کاربر دائمی آواتار Hossis
    تاریخ عضویت
    آبان 1386
    محل زندگی
    بیرجند
    پست
    1,731

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    نقل قول نوشته شده توسط hamid_hr مشاهده تاپیک
    سلام
    من برا رفع اين مشكل اين كارو كردم
    اول يك پروسيجر پيدا كردم كه كل ديتابيسو به صورت يك پارچه در اورد يعني همه "ي" و "ی" و "ك" و "و" و "پ" و ... رو يارچه كرد
    اين كد پروسيجر كه پيداش كردم

    Create procedure [dbo].[ChangeCodePage]
    as

    select ROW_NUMBER() over (order by TBLs.TABLE_NAME, COLs.COLUMN_NAME) Row, TBLs.TABLE_NAME TblName, COLs.COLUMN_NAME ColName
    into #t
    from INFORMATION_SCHEMA.TABLES TBLs
    join INFORMATION_SCHEMA.COLUMNS COLs on TBLs.TABLE_NAME = COLs.TABLE_NAME
    where TABLE_TYPE = 'BASE TABLE'
    and DATA_TYPE in ('char', 'nchar', 'varchar', 'nvarchar')

    declare @x varchar(1000)

    create table #errors(Error varchar(1000))

    declare @i int
    set @i = 0

    while 1 = 1
    begin
    set @i = (select top 1 Row from #t where Row > @i)
    if @i is null
    break

    select @x = 'update [' + TblName + '] set [' + ColName + '] = Replace( Replace( Replace([' + ColName + '], nchar(1603), nchar(1705)), nchar(1610), nchar(1740)), nchar(1609), nchar(1740))'
    from #t
    where Row = @i

    begin try
    exec(@x)
    end try

    begin catch
    insert into #errors
    values(char(13) + char(10) + 'ERROR: ' + char(13) + char(10) + @x + char(13) + char(10))
    end catch
    end

    select *
    from #errors

    print 'CODE PAGE GHANGING DONE!'

    drop table #t
    drop table #errors


    طرز استفاده از اين كد هم راحته
    اول تو sql اجراش كنين تا پروسيجر ساخته بشه بعد پروسيجر رو اجرا كنين

    exec ChangeCodePage

    :
    فرض کنید من می خوام تو وی بی یا سی شارپ این کد رو استفاده کنمپ
    میشه شسته رفته (هلو تو گلو) یک نمونه بنویسید که چیکار کنیم؟؟

  20. #20

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    متاسفم برای انجمن برنامه نویس و برنامه نویسان حرفه ای این انجمن که نتونستن یک راه یکپارچه، مختصر، مفید و کارا برای چنین مشکل دائمی ای پیدا کنند!!!!!

  21. #21

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    نقل قول نوشته شده توسط mriman مشاهده تاپیک
    متاسفم برای انجمن برنامه نویس و برنامه نویسان حرفه ای این انجمن که نتونستن یک راه یکپارچه، مختصر، مفید و کارا برای چنین مشکل دائمی ای پیدا کنند!!!!!
    سلام دوست عزیز من برنامه نویس حرفه ای نیستم ولی بچه های برنامه نویس این انجمن باید چیکار کنن برای جستجو فقط همین روش وجود داره.
    case "شماره سند": { query = "select * from Tbl_AddFoctorKhedmat where convert(varchar,A_Doc) LIKE N'%" + TxtSearch.Text + "%'"; break; }
    case "شماره فاکتور": { query = "select * from Tbl_AddFoctorKhedmat where convert(varchar,A_Foc) LIKe N'%" + TxtSearch.Text + "%'"; break; }
    case "کد خدمات": { query = "select * from Tbl_AddFoctorKhedmat where convert (varchar,A_CodeKhedemat) LIKE N'%" + TxtSearch.Text + "%'"; break; }
    case "نام سرويس": { query = "select * from Tbl_AddFoctorKhedmat where A_NameServic LIKE N'%" + TxtSearch.Text + "%'"; break; }
    case "شرح و حال سرويس": { query = "select * from Tbl_AddFoctorKhedmat where A_Distrebuite LIKE N'%" + TxtSearch.Text + "%'"; break; }

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

  22. #22

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    بهترین کار bind کردن دستی کمبو باکس به جدول هستش من از این روش استفاده میکنم خیلی بهتره سرعتش هم خوبه من تو کد زیر یه کوئری زدم که مقدار یه فیلد توی یه کمبو باکس میادش بعد بر اساس اون سه تا لیبل یا تکس باکس رو به مقدار کمبوباکس بایند میکنم یا هر چند تا که خواستید

    DataTable table = new DataTable();
    using (SqlConnection sqlConn = new SqlConnection(MDIParent1.connectionstringsql)) //use your conn. string here
    {
    using (SqlDataAdapter da = new SqlDataAdapter(@"SELECT jeen_ID,name,price,priceforoosh,size FROM jeens", sqlConn))
    da.Fill(table);
    }
    cmbkharidname.DataSource = new BindingSource(table, null);
    cmbkharidname.DisplayMember = "Name";
    cmbkharidname.ValueMember = "jeen_ID";
    try { lblJeen_ID.Text = cmbkharidname.SelectedValue.ToString(); }
    catch { }
    cmbkharidname.ValueMember = "priceforoosh";
    try { txtprice.Text = cmbkharidname.SelectedValue.ToString(); }
    catch { }
    cmbkharidname.ValueMember = "size";
    try { lblSizeinAddForoosh.Text = cmbkharidname.SelectedValue.ToString(); }
    catch { }

  23. #23

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    چیکار کنن!!!!
    خوب روش خوب پیدا کنن دیگه!!!!
    به نظر من همیکه در هر ورودی ، کاراکتر ی ورودی را Replace کنیم بهترین کار باشه
    یعنی تا بحال من روش بهتری پیدا نکردم



    بایند کردن کومبو باکس خوبه اما خیلی جاها کارایی نداره...!

  24. #24

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    خب بعد از اینکه کمبو باکس رو بایند کردی این دو خاصیت رو هم تنظیم کن
    autocompletemode رو بزار suggest
    autocompletesource رو هم بزارCustomSource

    بعد ش اگه تو کمبو باکس چیزی تایپ کنی خودش فیلتر میکنه
    مثلا اگه داخل کمبو باکس سه تا کلمه
    ایران ایرانی ایرانه داشته باشی تو هر لحظه با تایپ کردن خودش فیلتر میکنه مثلا با تایپ ا سریع این سه کلمه رو نشونت میده

  25. #25

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    نقل قول نوشته شده توسط naghshineh m&h مشاهده تاپیک
    سلام مشکل به راحتی و صد درصد قابل حل است فقط نکته ای که اینجانب به آن ایمان دارم این است که مهندسین مایکروسافت هیچ راه غیر قابل حلی برایشان نیست و هیچگاه برنامه نویسی را به حدی سخت نمی کنند که کاربر بخواهد ابتدا Replace کند بعد یه کاردیگه و بعد ..........
    راه حل به این شکل است که دقیقا قبل از like از حرف N استفاده کنید
    مثال
    SELECT * FROM tbl WHERE col LIKE N'%ی%'
    سلام .این بهترین روش هستش

  26. #26

    نقل قول: مشکل با حرف " ی " در جستجو ( پایگاه=اکسس - زبان = سی شارپ - ظرف=DataGrid )

    ی را حل خیلی ساده وجود داره شما کافیه ی موقع سرچ جای ي عربی رو با ی فارسی عوض کنید
    برای مثال در سرچ با متد linq
     var sh = from c in std_table
    where c.Std_Name.Trim().Replace('ي', 'ی').Contains(tb_name.Text.Trim())
    select c;

    در ضمن فک کنم اینجا جابه جا مینویسه پس حواستون باشه که توی تابع replace اول باید ي عربی بیاد بعد فارسی
    ی نکته دیگه اینکه ي عربیرو میتونین با shift+ x بنویسین

برچسب های این تاپیک

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

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