按拼音模糊匹配查询条件的生成类

时间:2020-12-03 06:08:51
转载了好几个地方,很难确定最早的出处。
将源码贴出来先。
 1按拼音模糊匹配查询条件的生成类using System; 
 2按拼音模糊匹配查询条件的生成类using System.Text; 
 3按拼音模糊匹配查询条件的生成类using System.IO; 
 4按拼音模糊匹配查询条件的生成类
 5按拼音模糊匹配查询条件的生成类namespace ts
 6按拼音模糊匹配查询条件的生成类按拼音模糊匹配查询条件的生成类
 7按拼音模糊匹配查询条件的生成类    class test
 8按拼音模糊匹配查询条件的生成类按拼音模糊匹配查询条件的生成类    
 9按拼音模糊匹配查询条件的生成类按拼音模糊匹配查询条件的生成类        private static string[] startChars = {"""""","","","","","",
"","","","","","","","","","""","","","","","","",""}

10按拼音模糊匹配查询条件的生成类按拼音模糊匹配查询条件的生成类        private static string[] endChars = {"""""","","","","","",
"","","","","","","","","","""","","","","","","",""}

11按拼音模糊匹配查询条件的生成类
12按拼音模糊匹配查询条件的生成类按拼音模糊匹配查询条件的生成类        /// <summary> 
13按拼音模糊匹配查询条件的生成类        /// 根据字符和对应的中文字符,转成SQL查询条件 
14按拼音模糊匹配查询条件的生成类        /// </summary> 
15按拼音模糊匹配查询条件的生成类        /// <param name="cChar">要转化的字符,[A-Z]</param> 
16按拼音模糊匹配查询条件的生成类        /// <param name="strFieldName">条件左值</param> 
17按拼音模糊匹配查询条件的生成类        /// <returns>SQL条件</returns> 
18按拼音模糊匹配查询条件的生成类        /// <remarks> Sxf 2001-1-4 ***** JY 2002-1-4 </remarks> 

19按拼音模糊匹配查询条件的生成类        public static string GetCharCondition(char cChar, string strFieldName) 
20按拼音模糊匹配查询条件的生成类按拼音模糊匹配查询条件的生成类        
21按拼音模糊匹配查询条件的生成类            string strWord; 
22按拼音模糊匹配查询条件的生成类            int Index = (int)(char.ToUpper(cChar)) - (int)'A'
23按拼音模糊匹配查询条件的生成类            if (Index >= 0 && Index < 26
24按拼音模糊匹配查询条件的生成类                strWord = startChars[Index]; 
25按拼音模糊匹配查询条件的生成类            else 
26按拼音模糊匹配查询条件的生成类                strWord = startChars[0]; 
27按拼音模糊匹配查询条件的生成类            
28按拼音模糊匹配查询条件的生成类            //return string.Format("(({0}>='{1}' AND {0}<'[') OR ({0} >= '{3}' AND {0} < '{{') OR {0}>='{2}')",  
29按拼音模糊匹配查询条件的生成类            //strFieldName, char.ToUpper(cChar), strWord, char.ToLower(cChar)); 
30按拼音模糊匹配查询条件的生成类            
31按拼音模糊匹配查询条件的生成类            return string.Format("(({0} >= '{3}' AND {0} <= 'zzzzzzzz') OR {0}>='{2}')",  
32按拼音模糊匹配查询条件的生成类            strFieldName, char.ToUpper(cChar), strWord, char.ToLower(cChar)); 
33按拼音模糊匹配查询条件的生成类        }
 
34按拼音模糊匹配查询条件的生成类
35按拼音模糊匹配查询条件的生成类按拼音模糊匹配查询条件的生成类        /// <summary> 
36按拼音模糊匹配查询条件的生成类        /// 将指定字段值的每个字符分割,这样可以生成同音查询的SQL 
37按拼音模糊匹配查询条件的生成类        /// </summary> 
38按拼音模糊匹配查询条件的生成类        /// <param name="fieldName">字段名</param> 
39按拼音模糊匹配查询条件的生成类        /// <param name="fieldValue">字段值</param> 
40按拼音模糊匹配查询条件的生成类        /// <returns>生成的可以进行同音查询的SQL</returns> 

41按拼音模糊匹配查询条件的生成类        public static string GetCharFullCondition(string fieldName, string fieldValue) 
42按拼音模糊匹配查询条件的生成类按拼音模糊匹配查询条件的生成类        
43按拼音模糊匹配查询条件的生成类            StringBuilder sql = new StringBuilder(1024); 
44按拼音模糊匹配查询条件的生成类            int i = 1
45按拼音模糊匹配查询条件的生成类            foreach (char c in fieldValue) 
46按拼音模糊匹配查询条件的生成类按拼音模糊匹配查询条件的生成类            
47按拼音模糊匹配查询条件的生成类                if (i > 1
48按拼音模糊匹配查询条件的生成类                    sql.Append(" AND "); 
49按拼音模糊匹配查询条件的生成类                int index = (int)(char.ToUpper(c)) - (int)'A'
50按拼音模糊匹配查询条件的生成类                string startWord, endWord; 
51按拼音模糊匹配查询条件的生成类                if (index >= 0 && index < 26
52按拼音模糊匹配查询条件的生成类按拼音模糊匹配查询条件的生成类                
53按拼音模糊匹配查询条件的生成类                    startWord = startChars[index]; 
54按拼音模糊匹配查询条件的生成类                    endWord = endChars[index]; 
55按拼音模糊匹配查询条件的生成类                }
 
56按拼音模糊匹配查询条件的生成类                else 
57按拼音模糊匹配查询条件的生成类按拼音模糊匹配查询条件的生成类                
58按拼音模糊匹配查询条件的生成类                    startWord = startChars[0]; 
59按拼音模糊匹配查询条件的生成类                    endWord = endChars[0]; 
60按拼音模糊匹配查询条件的生成类                }
 
61按拼音模糊匹配查询条件的生成类                string subStr = String.Format("SUBSTRING({0}, {1}, {2})", fieldName, i, 1); 
62按拼音模糊匹配查询条件的生成类                sql.AppendFormat("({0} BETWEEN '{1}' AND '{2}')", subStr, startWord, endWord); 
63按拼音模糊匹配查询条件的生成类                ++i; 
64按拼音模糊匹配查询条件的生成类            }
 
65按拼音模糊匹配查询条件的生成类
66按拼音模糊匹配查询条件的生成类            return sql.ToString(); 
67按拼音模糊匹配查询条件的生成类        }
 
68按拼音模糊匹配查询条件的生成类    }
 
69按拼音模糊匹配查询条件的生成类}