在列和顺序内搜索jQuery自动完成
我有jQuery自动完成(而不是jQueryUI)来搜索我的数据库中的fname和lname。现在很好,它可以搜索名字,然后过滤出来并搜索姓氏。但是有没有办法让其他方法得到它呢?在列和顺序内搜索jQuery自动完成
即。搜索水晶带来了水晶桑托斯,水晶插柳,水晶海耶斯等
但搜索桑托斯带来了桑托斯Rameros,桑托斯Riveria等(它假定桑托斯是FNAME)
反正有没有改变呢?为了过滤fname和lname。
我也可以得到它在一个列内搜索?我有一个为部门过滤,但有些部门有多个值。在移至第二个之前,它只会搜索第一个。
即。搜索医疗办公室控制器,你将不得不搜索医疗第一。你不能搜索控制器或Office,并让它显示出结果。
如果需要澄清,请告诉我。
处理器ASHX
public void ProcessRequest (HttpContext context) {
string prefixText = context.Request.QueryString["q"];
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager.ConnectionStrings["Rollup2ConnectionString"].ConnectionString;
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "SP_AUTOCOMPLETE";
cmd.Parameters.Add(new SqlParameter("@SearchText", SqlDbType.VarChar));
cmd.Parameters["@SearchText"].Value = prefixText;
cmd.Connection = conn;
StringBuilder sb = new StringBuilder();
conn.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
sb.Append(sdr["NUID"].ToString() + " ").Append(sdr["FNAME"].ToString() + " ").Append(sdr["LNAME"].ToString() + " ")
.Append(Environment.NewLine);
}
}
conn.Close();
context.Response.Write(sb.ToString());
}
}
}
public bool IsReusable {
get {
return false;
}
}
这是目前一个FNAME LNAME,在一个部门究竟是除了磁场变化一样。
存储过程NAME
@SearchText VARCHAR(255)
AS
BEGIN
SET NOCOUNT ON;
SELECT RTRIM(NUID) NUID, RTRIM(FNAME) FNAME, RTRIM(LNAME) LNAME
FROM T_USER
WHERE NUID like @SearchText + '%' OR FNAME like @SearchText + '%' OR LNAME like @SearchText + '%'
END
存储过程系
@SearchText VARCHAR(255)
AS
BEGIN
SET NOCOUNT ON;
SELECT RTRIM(DEPT_DESC) DEPT_DESC, RTRIM(DEPT_ID) DEPT_ID
FROM T_ROLLUP_DEPT
WHERE DEPT_ID like @SearchText + '%' OR DEPT_DESC like @SearchText + '%'
END
这更是一个数据库问题。你需要回到你的存储过程,并添加一个或子句WHERE说
WHERE (FNAME LIKE '%SearchText%') OR (LNAME LIKE '%SearchText%')
调整SQL语句,当你输入后“桑托斯”,你会现在得到水晶桑托斯,桑托斯Rameros ,Santos Riveria等
问题的第二部分还需要对SQL存储过程进行调整。只需在你的WHERE子句中添加LIKE'%%'即可。因此,如果您的用户搜索“控制器”,医疗管理员将出现。
已更新Stored Proc。对于那个很抱歉。 – user1512593 2012-08-07 18:20:38
感谢您使用LIKE'%%'命令提供的帮助。但是,'%SearchText%'似乎没有返回值。 – user1512593 2012-08-07 18:42:47
我认为你需要做'%'+ @SearchText +'%' – Arm0geddon 2012-08-07 21:27:49
该问题不在您的代码中,而是在您存储的proc中 – Brian 2012-08-07 18:13:26
已更新为Stored Proc。感谢您的澄清 – user1512593 2012-08-07 18:20:57
如果您从您的存储过程中获取选择的陈述,并运行这个值与您期望通过的值一致,它是否会给出预期的结果? – Brian 2012-08-07 18:44:59