<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        asp.net 根據(jù)漢字的拼音首字母搜索數(shù)據(jù)庫(附 LINQ 調(diào)用方法)

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:43:14
        文檔

        asp.net 根據(jù)漢字的拼音首字母搜索數(shù)據(jù)庫(附 LINQ 調(diào)用方法)

        asp.net 根據(jù)漢字的拼音首字母搜索數(shù)據(jù)庫(附 LINQ 調(diào)用方法):方法一:先查詢出所有記錄,然后在邏輯層轉(zhuǎn)化為拼音首字母后查詢,顯然傻瓜才會這么做。 方法二:在需要搜索的表中添加一個字段用于存放被檢索字段內(nèi)容對應(yīng)的拼音,在搜索的時候同時去查詢這兩個字段,這種方法可行,但會增加數(shù)據(jù)庫存放的大小。 方法三:在數(shù)
        推薦度:
        導(dǎo)讀asp.net 根據(jù)漢字的拼音首字母搜索數(shù)據(jù)庫(附 LINQ 調(diào)用方法):方法一:先查詢出所有記錄,然后在邏輯層轉(zhuǎn)化為拼音首字母后查詢,顯然傻瓜才會這么做。 方法二:在需要搜索的表中添加一個字段用于存放被檢索字段內(nèi)容對應(yīng)的拼音,在搜索的時候同時去查詢這兩個字段,這種方法可行,但會增加數(shù)據(jù)庫存放的大小。 方法三:在數(shù)

        方法一:先查詢出所有記錄,然后在邏輯層轉(zhuǎn)化為拼音首字母后查詢,顯然傻瓜才會這么做。

        方法二:在需要搜索的表中添加一個字段用于存放被檢索字段內(nèi)容對應(yīng)的拼音,在搜索的時候同時去查詢這兩個字段,這種方法可行,但會增加數(shù)據(jù)庫存放的大小。

        方法三:在數(shù)據(jù)庫中建立一個函數(shù),在執(zhí)行查詢語句時通過此函數(shù)來轉(zhuǎn)化搜索,函數(shù)如下:

        代碼如下:


        SET ANSI_NULLS ON
        GO
        SET QUOTED_IDENTIFIER ON
        GO
        -- =============================================
        -- Author: xoyozo
        -- Create date: 2010-4-17
        -- Description: 提供中文首字母
        -- =============================================
        CREATE FUNCTION fun_getPY
        (
        @str NVARCHAR(4000)
        )
        RETURNS NVARCHAR(4000)
        AS
        BEGIN
        DECLARE @word NCHAR(1),@PY NVARCHAR(4000)
        SET @PY=''
        WHILE len(@str)>0
        BEGIN
        SET @word=left(@str,1)
        SET @PY=@PY+(CASE WHEN unicode(@word) BETWEEN 19968 AND 19968+20901
        THEN (SELECT TOP 1 PY FROM (
        SELECT 'A' AS PY,N'驁' AS word
        UNION ALL SELECT 'B',N'簿'
        UNION ALL SELECT 'C',N'錯'
        UNION ALL SELECT 'D',N'鵽'
        UNION ALL SELECT 'E',N'樲'
        UNION ALL SELECT 'F',N'鰒'
        UNION ALL SELECT 'G',N'腂'
        UNION ALL SELECT 'H',N'夻'
        UNION ALL SELECT 'J',N'攈'
        UNION ALL SELECT 'K',N'穒'
        UNION ALL SELECT 'L',N'鱳'
        UNION ALL SELECT 'M',N'旀'
        UNION ALL SELECT 'N',N'桛'
        UNION ALL SELECT 'O',N'漚'
        UNION ALL SELECT 'P',N'曝'
        UNION ALL SELECT 'Q',N'囕'
        UNION ALL SELECT 'R',N'鶸'
        UNION ALL SELECT 'S',N'蜶'
        UNION ALL SELECT 'T',N'籜'
        UNION ALL SELECT 'W',N'鶩'
        UNION ALL SELECT 'X',N'鑂'
        UNION ALL SELECT 'Y',N'韻'
        UNION ALL SELECT 'Z',N'咗'
        ) T
        WHERE word>=@word COLLATE Chinese_PRC_CS_AS_KS_WS
        ORDER BY PY ASC) ELSE @word END)
        SET @str=right(@str,len(@str)-1)
        END
        RETURN @PY
        END


        使用方法:
        代碼如下:


        select * from 表 where fun_getPY(字段) like N'%zgr%'


        此方法是最快捷方便的,通過測試在文章表中搜索標(biāo)題首字母,其耗時大約為不使用此函數(shù)搜索的 3 倍,相信部署在小數(shù)據(jù)量的項目中的成本是非常低的。

        LINQ 方式操作
        初學(xué) LINQ 的朋友或許對 .dbml 文件不是很熟悉,數(shù)據(jù)庫中的表可以直接拖動到 .dbml 的左側(cè),而存儲過程、函數(shù)等可以直接拖到其右側(cè),然后就可以直接在邏輯使用了,下面是例子:
        代碼如下:


        DataClasses1DataContext db = new DataClasses1DataContext();
        var q = from d in db.Documents
        where d.Title.Contains("zgr") || db.fun_getPY(d.Title).Contains("zgr")
        select d;

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        asp.net 根據(jù)漢字的拼音首字母搜索數(shù)據(jù)庫(附 LINQ 調(diào)用方法)

        asp.net 根據(jù)漢字的拼音首字母搜索數(shù)據(jù)庫(附 LINQ 調(diào)用方法):方法一:先查詢出所有記錄,然后在邏輯層轉(zhuǎn)化為拼音首字母后查詢,顯然傻瓜才會這么做。 方法二:在需要搜索的表中添加一個字段用于存放被檢索字段內(nèi)容對應(yīng)的拼音,在搜索的時候同時去查詢這兩個字段,這種方法可行,但會增加數(shù)據(jù)庫存放的大小。 方法三:在數(shù)
        推薦度:
        標(biāo)簽: 搜索 方法 數(shù)據(jù)
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 成人黄动漫画免费网站视频 | 亚洲黄色免费网址| 亚洲日韩在线中文字幕第一页| 亚洲人成电影网站色www| 久久国内免费视频| 久久亚洲国产成人影院| 国产网站在线免费观看| 美女羞羞喷液视频免费| 亚洲精品国产精品国自产观看| 香蕉视频亚洲一级| 国产成人精品日本亚洲专区| 中文在线免费视频| 亚洲国产天堂在线观看| 日韩视频在线精品视频免费观看| 亚洲kkk4444在线观看| 日本久久久免费高清| 免费人妻精品一区二区三区| 最新精品亚洲成a人在线观看| 成人影片一区免费观看| 亚洲免费在线视频播放| 国产a不卡片精品免费观看| 一级做a爰片久久毛片免费看| 亚洲精品无码午夜福利中文字幕 | 亚洲首页国产精品丝袜| 在线观看无码的免费网站| 九九免费观看全部免费视频| 亚洲啪啪综合AV一区| 亚洲一区二区三区免费在线观看| 日韩亚洲人成在线| 亚洲天堂中文字幕在线| 亚洲一区二区三区免费视频| 成人婷婷网色偷偷亚洲男人的天堂 | 亚洲制服中文字幕第一区| 男人的好免费观看在线视频| 麻豆91免费视频| 亚洲黄色三级视频| 午夜亚洲av永久无码精品| 57pao国产成视频免费播放| 直接进入免费看黄的网站| 亚洲AV日韩精品久久久久久久| 四虎影视大全免费入口|