Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Cách tìm kiếm không dấu khi trong CSDL có dấu tiếng Việt

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    12

    Mặc định Cách tìm kiếm không dấu khi trong CSDL có dấu tiếng Việt

    E tìm được khi ghi có dấu tiếng việt nhưng nếu ghi không dấu lại không ra kết quả
    code của em đây
    where Ten like '%" + Tim + "%'

    ai viết xin ghỉ giáo

  2. #2
    Ngày gia nhập
    10 2009
    Nơi ở
    Việt Nam
    Bài viết
    359

    Trích dẫn Nguyên bản được gửi bởi nguoibinhthuong_nqc Xem bài viết
    E tìm được khi ghi có dấu tiếng việt nhưng nếu ghi không dấu lại không ra kết quả
    code của em đây
    where Ten like '%" + Tim + "%'

    ai viết xin ghỉ giáo
    đơn giản là vì csdl bạn là tiếng việt gõ ko dấu thì tìm ko ra là pải. muốn gõ tiếng việt mà cũng ra bạn có thể làm như sau: khi bấm vào tìm thực hiện 2 công việc:
    1. chuyển dữ liệu muốn tìm trong csdl sang tiếng việt 0 dấu.
    2. chuyển từ khóa tìm kiếm sang tiếng việt 0 dấu
    rồi thực hiện công việc
    where Ten like '%" + Tim + "%'
    Muốn thành công thì đừng thất vọng - nhưng nếu có lúc thất vọng thì cứ làm việc trong sự thất vọng đi.

  3. #3
    Ngày gia nhập
    10 2011
    Bài viết
    18

    nghe bạn nói cũng có vẻ hợp lý đấy nhưng có điều làm sao thực hiện 2 công viêc đó mới là vấn đề đấy bạn,nếu bạn biết có thể hướng dẫn giúp mình với

  4. #4
    Ngày gia nhập
    11 2008
    Bài viết
    207

    Trích dẫn Nguyên bản được gửi bởi lythanh90 Xem bài viết
    nghe bạn nói cũng có vẻ hợp lý đấy nhưng có điều làm sao thực hiện 2 công viêc đó mới là vấn đề đấy bạn,nếu bạn biết có thể hướng dẫn giúp mình với
    Code:
    a  =  a   á   à   ả   ã   ạ           ă   ắ   ằ   ẳ   ẵ   ặ           â   ấ   ầ   ẩ   ẫ   ậ       
    e = e   é   è   ẻ   ẽ   ẹ           ê   ế   ề   ể   ễ   ệ       
    i =   i   í   ì   ỉ   ĩ   ị       
    o =  o   ó   ò   ỏ   õ   ọ           ô   ố   ồ   ổ   ỗ   ộ           ơ   ớ   ờ   ở   ỡ   ợ       
    u =  u   ú   ù   ủ   ũ   ụ           ư   ứ   ừ   ử   ữ   ự       
    y =  y   ý   ỳ   ỷ   ỹ   ỵ       
    d =  đ
    tương tự bảng trên là xong rồi chứ gì?

  5. #5
    Ngày gia nhập
    10 2009
    Nơi ở
    Việt Nam
    Bài viết
    359

    SQL Code:
    1. --CREATE BY webmaster@hmweb.com.vn
    2. CREATE FUNCTION [dbo].[fuChuyenCoDauThanhKhongDau]
    3. (
    4.       @strInput NVARCHAR(4000)
    5. )
    6. RETURNS NVARCHAR(4000)
    7. AS
    8. BEGIN    
    9.     IF @strInput IS NULL RETURN @strInput
    10.     IF @strInput = '' RETURN @strInput
    11.     DECLARE @RT NVARCHAR(4000)
    12.     DECLARE @SIGN_CHARS NCHAR(136)
    13.     DECLARE @UNSIGN_CHARS NCHAR (136)
    14.  
    15.     SET @SIGN_CHARS = N'ăâđêôơưàảãạáằẳẵặắầẩẫậấèẻẽẹéềểễệế
    16.                  ìỉĩịíòỏõọóồổỗộốờởỡợớùủũụúừửữựứỳỷỹỵý
    17.                  ĂÂĐÊÔƠƯÀẢÃẠÁẰẲẴẶẮẦẨẪẬẤÈẺẼẸÉỀỂỄỆẾÌỈĨỊÍ
    18.                  ÒỎÕỌÓỒỔỖỘỐỜỞỠỢỚÙỦŨỤÚỪỬỮỰỨỲỶỸỴÝ'
    19.                   +NCHAR(272)+ NCHAR(208)
    20.     SET @UNSIGN_CHARS = N'aadeoouaaaaaaaaaaaaaaaeeeeeeeeee
    21.                  iiiiiooooooooooooooouuuuuuuuuuyyyyy
    22.                  AADEOOUAAAAAAAAAAAAAAAEEEEEEEEEEIIIII
    23.                  OOOOOOOOOOOOOOOUUUUUUUUUUYYYYYDD'
    24.  
    25.     DECLARE @COUNTER INT
    26.     DECLARE @COUNTER1 INT
    27.     SET @COUNTER = 1
    28.  
    29.     WHILE (@COUNTER <=LEN(@strInput))
    30.     BEGIN  
    31.       SET @COUNTER1 = 1
    32.       --Tìm trong chuỗi mẫu
    33.        WHILE (@COUNTER1 <=LEN(@SIGN_CHARS)+1)
    34.        BEGIN
    35.      IF UNICODE(SUBSTRING(@SIGN_CHARS, @COUNTER1,1))
    36.             = UNICODE(SUBSTRING(@strInput,@COUNTER ,1) )
    37.      BEGIN          
    38.           IF @COUNTER=1
    39.               SET @strInput = SUBSTRING(@UNSIGN_CHARS, @COUNTER1,1)
    40.               + SUBSTRING(@strInput, @COUNTER+1,LEN(@strInput)-1)                  
    41.           ELSE
    42.               SET @strInput = SUBSTRING(@strInput, 1, @COUNTER-1)
    43.               +SUBSTRING(@UNSIGN_CHARS, @COUNTER1,1)
    44.               + SUBSTRING(@strInput, @COUNTER+1,LEN(@strInput)- @COUNTER)
    45.               BREAK
    46.                END
    47.              SET @COUNTER1 = @COUNTER1 +1
    48.        END
    49.       --Tìm tiếp
    50.        SET @COUNTER = @COUNTER +1
    51.     END
    52.     SET @strInput = REPLACE(@strInput,' ','-')
    53.     RETURN @strInput
    54. END

    Nguồn: hmweb


    Ví dụ: SELECT dbo.fuChuyenCoDauThanhKhongDau (N'hmweb-Các hàm số thông dụng trong Excel') --Sẽ trả về kết quả là "hmweb-Cac-ham-so-thong-dung-trong-Excel"
    Muốn thành công thì đừng thất vọng - nhưng nếu có lúc thất vọng thì cứ làm việc trong sự thất vọng đi.

  6. #6
    Ngày gia nhập
    11 2008
    Bài viết
    207

    Thumbs up Cách tìm kiếm không dấu khi trong CSDL có dấu tiếng Việt

    Trích dẫn Nguyên bản được gửi bởi pvtam2a Xem bài viết
    ...
    Ví dụ: SELECT dbo.fuChuyenCoDauThanhKhongDau (N'hmweb-Các hàm số thông dụng trong Excel') --Sẽ trả về kết quả là "hmweb-Cac-ham-so-thong-dung-trong-Excel"
    bookmark, tuyệt thật.

  7. #7
    Ngày gia nhập
    11 2011
    Bài viết
    3

    Mặc định Hàm C# chuyển tiếng Việt có dấu thành không dấu

    Visual C# Code:
    1.         /// <summary>
    2.         /// Chuyển tiếng việt có dấu thành tiếng việt không dấu (khoảng trắng thay  bằng dấu -)
    3.         /// </summary>
    4.         /// <param name="strVietnamese">tiếng việt có dấu</param>
    5.         /// <returns>tiếng việt không dấu</returns>
    6.         public string ConvertToVietnameseNotSignature(string strVietnamese)
    7.         {
    8.             const string FindText = "áàảãạâấầẩẫậăắằẳẵặđéèẻẽẹêếềểễệíìỉĩịóòỏõọôốồổỗộơớờởỡợúùủũụưứừửữựýỳỷỹỵÁÀẢÃẠÂẤẦẨẪẬĂẮẰẲẴẶĐÉÈẺẼẸÊẾỀỂỄỆÍÌỈĨỊÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢÚÙỦŨỤƯỨỪỬỮỰÝỲỶỸỴ #%&*:|.";
    9.             const string ReplText = "aaaaaaaaaaaaaaaaadeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyyAAAAAAAAAAAAAAAAADEEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOOOUUUUUUUUUUUYYYYY-       ";
    10.             int index = -1;
    11.             while ((index = strVietnamese.IndexOfAny(FindText.ToCharArray())) != -1)
    12.             {
    13.                 int index2 = FindText.IndexOf(strVietnamese[index]);
    14.                 strVietnamese = strVietnamese.Replace(strVietnamese[index], ReplText[index2]);
    15.             }
    16.             return strVietnamese;
    17.         }
    18.  
    19. Nhập "Tiếng Việt có dấu" ---> Kết quả: "Tieng-Viet-co-dau"

  8. #8
    Ngày gia nhập
    04 2011
    Bài viết
    1

    Thanks bạn rất nhìu

  9. #9
    Ngày gia nhập
    04 2010
    Nơi ở
    Hà Nội
    Bài viết
    138

    Có cách mà bạniamonlining đã viết trong forum
    http://diendan.congdongcviet.com/showthread.php?t=78345

    đây nữa

    http://diendan.congdongcviet.com/showthread.php?t=61784
    Thế giới thật rộng lớn

  10. #10
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Đúng rồi. Cách này cũng khá hay này. Code của bác Tây gì đó ko nhớ nữa.
    Visual C# Code:
    1.         public static string RemoveUnicode(string s)
    2.         {
    3.             string stFormD = s.Normalize(NormalizationForm.FormD);
    4.             StringBuilder sb = new StringBuilder();
    5.             for (int ich = 0; ich < stFormD.Length; ich++)
    6.             {
    7.                 UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(stFormD[ich]);
    8.                 if (uc != UnicodeCategory.NonSpacingMark)
    9.                     sb.Append(stFormD[ich]);
    10.             }
    11.             return (sb.ToString().Normalize(NormalizationForm.FormC));
    12.         }
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

Các đề tài tương tự

  1. Lưu tiếng Việt trong csdl mysql 2005
    Gửi bởi bigstone trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 24-04-2011, 10:07 AM
  2. Database Tìm kiếm trong listbox dùng csdl xml (Từ điển)
    Gửi bởi dragonduyt2 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 10-04-2011, 01:50 PM
  3. Tìm 1 tên tiếng Việt trong CSDL như thế nào
    Gửi bởi to_ka_rin trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 27-10-2010, 12:06 AM
  4. Tiếng việt Unicode trong kết nối CSDL
    Gửi bởi Socket trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 16
    Bài viết cuối: 13-07-2010, 12:21 PM
  5. [CSDL] Tạo query tìm kiếm 1 từ trong câu
    Gửi bởi lammcathay trong diễn đàn Thắc mắc đại cương Database & Reporting
    Trả lời: 2
    Bài viết cuối: 12-05-2009, 11:49 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn