zoukankan
html css js c++ java
拼音查询生成SQL条件的类
拼音查询生成SQL条件的类
public
class
SQLPingYing
{
private
static
string
[] startChars
=
{
"
啊
"
,
"
芭
"
,
"
擦
"
,
"
搭
"
,
"
蛾
"
,
"
发
"
,
"
噶
"
,
"
哈
"
,
"
击
"
,
"
击
"
,
"
喀
"
,
"
垃
"
,
"
妈
"
,
"
拿
"
,
"
哦
"
,
"
啪
"
,
"
期
"
,
"
然
"
,
"
撒
"
,
"
塌
"
,
"
挖
"
,
"
挖
"
,
"
挖
"
,
"
昔
"
,
"
压
"
,
"
匝
"
}
;
private
static
string
[] endChars
=
{
"
澳
"
,
"
怖
"
,
"
错
"
,
"
堕
"
,
"
贰
"
,
"
咐
"
,
"
过
"
,
"
祸
"
,
"
啊
"
,
"
骏
"
,
"
阔
"
,
"
络
"
,
"
穆
"
,
"
诺
"
,
"
沤
"
,
"
瀑
"
,
"
群
"
,
"
弱
"
,
"
所
"
,
"
唾
"
,
"
啊
"
,
"
啊
"
,
"
误
"
,
"
迅
"
,
"
孕
"
,
"
座
"
}
;
/**/
///
<summary>
///
根据字符和对应的中文字符,转成SQL查询条件
///
</summary>
///
<param name="cChar">
要转化的字符,[A-Z]
</param>
///
<param name="strFieldName">
条件左值
</param>
///
<returns>
SQL条件
</returns>
///
<remarks>
Sxf 2001-1-4 ***** JY 2002-1-4
</remarks>
public
static
string
GetCharCondition(
char
cChar,
string
strFieldName)
{
string
strWord;
int
Index
=
(
int
)(
char
.ToUpper(cChar))
-
(
int
)
'
A
'
;
if
(Index
>=
0
&&
Index
<
26
)
strWord
=
startChars[Index];
else
strWord
=
startChars[
0
];
//
return string.Format("(({0}>='{1}' AND {0}<'[') OR ({0} >= '{3}' AND {0} < '{{') OR {0}>='{2}')",
//
strFieldName, char.ToUpper(cChar), strWord, char.ToLower(cChar));
return
string
.Format(
"
(({0} >= '{3}' AND {0} <= 'zzzzzzzz') OR {0}>='{2}')
"
,
strFieldName,
char
.ToUpper(cChar), strWord,
char
.ToLower(cChar));
}
/**/
///
<summary>
///
将指定字段值的每个字符分割,这样可以生成同音查询的SQL
///
</summary>
///
<param name="fieldName">
字段名
</param>
///
<param name="fieldValue">
字段值
</param>
///
<returns>
生成的可以进行同音查询的SQL
</returns>
public
static
string
GetCharFullCondition(
string
fieldName,
string
fieldValue)
{
StringBuilder sql
=
new
StringBuilder(
1024
);
int
i
=
1
;
foreach
(
char
c
in
fieldValue)
{
if
(i
>
1
)
sql.Append(
"
AND
"
);
int
index
=
(
int
)(
char
.ToUpper(c))
-
(
int
)
'
A
'
;
string
startWord, endWord;
if
(index
>=
0
&&
index
<
26
)
{
startWord
=
startChars[index];
endWord
=
endChars[index];
}
else
{
startWord
=
startChars[
0
];
endWord
=
endChars[
0
];
}
string
subStr
=
String.Format(
"
SUBSTRING({0}, {1}, {2})
"
, fieldName, i,
1
);
sql.AppendFormat(
"
({0} BETWEEN '{1}' AND '{2}')
"
, subStr, startWord, endWord);
++
i;
}
return
sql.ToString();
}
}
查看全文
相关阅读:
LOJ DFS序
牛客练习赛31 D神器大师泰兹瑞与威穆
Codeforces Round #487 (Div. 2) C
Manthan, Codefest 18 (rated, Div. 1 + Div. 2) C D
[Windows Server 2003] 还原SQL Server数据库
[Windows Server 2008] 查看PHP详细错误信息
[Windows Server 2008] 安装网站伪静态
网站Gzip压缩
[Windows Server 2008] SQL Server 2008 数据库还原方法
[Windows Server 2008] 安装Apache+PHP+MySQL
原文地址:https://www.cnblogs.com/skyblue/p/951691.html
最新文章
UIWebView与JavaScript相互调用
Xcode LLDB Debug教程
IOS音频视频
2016 、12 、11<本周>
noip2016
抉择吧!在序列上!
Nowcoder84D
Triangle (第8届山东省赛的某题)
主席树,喵~
Codeforces 623D [Amazing概率题]
热门文章
一些Gym三星单刷的比赛总结
RDC去省赛玩前の日常训练 Chapter 2
斯特林数
RDC去省赛玩前の日常训练 Chapter 1
BZOJ--1271-秦腾与教学评估
POJ--1328 Radar Installation(贪心 排序)
POJ--3190 Stall Reservations(贪心排序)
POJ--3614 Sunscreen(贪心)
hihocoder--1384 -- Genius ACM (倍增 归并)
POJ--3263 Tallest Cow
Copyright © 2011-2022 走看看