搜索
您的当前位置:首页正文

ASP.NET实现按拼音码模糊查询的方法

2023-12-09 来源:爱乐情感

整个过程分为两部分:生成拼音码字段、按拼音码进行模糊查询。

批量生成拼音码字段的实现:

protected void Button1_Click1(object sender, EventArgs e) { string strSQL; strSQL = "select mc from TEST001"; IDataReader dr = dac.DataReaderQuery(strSQL); while (dr.Read()) { string mc=dr["mc"].ToString(); string pym = StrToPinyin.GetChineseSpell(mc); if (pym.Length > 6) { pym = pym.Substring(0, 6);//我这里只去了6位,大家可以看自己爱好而定! } string updateSql = "update TEST001 set pym ='" + pym + "' where mc='" + mc + "'"; dac.update(updateSql); } dr.Close(); Response.Write("<script>alert('操作成功!');</script>"); }StrToPinyin 类的GetChineseSpell方法(取汉字拼音字母):public static string GetChineseSpell(string strText) { if (strText == null || strText.Length == 0) return strText; System.Text.StringBuilder myStr = new System.Text.StringBuilder(); foreach (char vChar in strText) { // 若不是汉字则直接
输出 if ((int)vChar < 19968 || (int)vChar > 40869) { myStr.Append(char.ToUpper(vChar)); } else if ((int)vChar >= 19968 && (int)vChar <= 40869) { // 若字符Unicode编码在编码范围则 查汉字列表进行转换输出 foreach (string strList in strChineseCharList) { if (strList.IndexOf(vChar) > 0) { myStr.Append(strList[0]); break; } } } } return myStr.ToString(); }

按拼音码进行模糊查询:

这个简单了,用select查询,where条件用LIKE即可,相信大家一定都会操作。

相信以后在实现按用户输入的拼音码进行数据的模糊查询功能的时候,大家就可以运用今天所学的ASP.NET实现按拼音码模糊查询了。

小编还为您整理了以下内容,可能对您也有帮助:

asp.net如何实现多条件选择模糊查询..

通常写一个简单的模糊查询的SQL语句格式可以如下例:

说明:1、WHERE 关键词的后面跟着用来过滤数据的条件,百分号%是通配符,可以代表多个任何字符,若是下划线_就代表一个任意字符。
实例如下:
sql="select * from 表名 where 姓名 like ’%"&request.form("name")&"%’ and 性别 like ’%"&request.form("sex")&"%’ and 电话 like
’%"&request.form("call")&"%’ "
上面这条SQL语句使用了三个模糊查询条件:姓名、性别、电话,当然我们还可以用类似
的方式构造更多的条件。这样我们就实现了多条件的模糊查询,实际试一试,问题出来了!!!如果数据库的查询字段都有值的化没问题,但如果是下边这样:
姓名 性别 电话
www.DeepTeach.com 87654321
当你模糊查询:"电话:5432"时将无法输出该记录,这是因为"性别"无值所以经两个and运算后结果为false/0,没有输出。 显然数据库中这三个字段的必须含有字段值,否则会漏掉正确的输出结果,
数据库中正确的输入应是这样的:
姓名 性别 电话
www.DeepTeach.com null 87654321
<null>值的逻辑值为1,所以经两次and运算后结果为true/1,可以输出上述记录。

那么在实际中如何来实现这样的多条件模糊查询呢?我是这样来实现的:

name=Request.QueryString("name") ’姓名
sex=Request.QueryString("sex") ’性别
call=Request.QueryString("call") ’电话

Sql= "Select * from 表名 where 1=1" ’1=1 避免所有查询字段为空时出错

if name <>"" then
Sql= Sql & "and 姓名 like ’%"& name &"%’"
end if
if sex <>"" then
Sql= Sql & "and 性别 = ’"& sex &"’" ’这个不是模糊查询了
end if
if call <>"" then
Sql= Sql & "and 电话 like ’%"& call &"%’"
end if
......
在此,你要注意到姓名、性别、电话这三个字段在数据库中的类型应为“文本”类型,否则查询时会出现“数据类型不匹配”错误。
如果三个条件均无输入,点击“查询”时将显示数据库中的所有记录,可能这是你不希望的,可以应该加入一个判断:当三个条件均无输入时,显示“请输入查询条件”,并中断输出到客户浏览器(response.end)例句如下:

if request.form("name")="" and request.form("sex")="" and request.form("call")="" then
response.write("请输入查询条件(可模糊查询)")
response.end
end if
切记:sql="select * from 表名 where 姓名 ... 电话 like ... "
必须在一行内输入完,而不能用回车符分段,因为vbs多行被认为是多个语句,这是许多初写者常犯的错误。如果你想分多段写,可以用上面的方法在现有变量基础上逐步增加查询语句的各个组成部分并把它存在同一变量内实现。在封闭引号之前或者在打开引号之后你需要增加空格,这样才能保证字符串连接起来的时候你没有把几个词凑到了一块。

asp.net如何实现多条件选择模糊查询..

通常写一个简单的模糊查询的SQL语句格式可以如下例:

说明:1、WHERE 关键词的后面跟着用来过滤数据的条件,百分号%是通配符,可以代表多个任何字符,若是下划线_就代表一个任意字符。
实例如下:
sql="select * from 表名 where 姓名 like ’%"&request.form("name")&"%’ and 性别 like ’%"&request.form("sex")&"%’ and 电话 like
’%"&request.form("call")&"%’ "
上面这条SQL语句使用了三个模糊查询条件:姓名、性别、电话,当然我们还可以用类似
的方式构造更多的条件。这样我们就实现了多条件的模糊查询,实际试一试,问题出来了!!!如果数据库的查询字段都有值的化没问题,但如果是下边这样:
姓名 性别 电话
www.DeepTeach.com 87654321
当你模糊查询:"电话:5432"时将无法输出该记录,这是因为"性别"无值所以经两个and运算后结果为false/0,没有输出。 显然数据库中这三个字段的必须含有字段值,否则会漏掉正确的输出结果,
数据库中正确的输入应是这样的:
姓名 性别 电话
www.DeepTeach.com null 87654321
<null>值的逻辑值为1,所以经两次and运算后结果为true/1,可以输出上述记录。

那么在实际中如何来实现这样的多条件模糊查询呢?我是这样来实现的:

name=Request.QueryString("name") ’姓名
sex=Request.QueryString("sex") ’性别
call=Request.QueryString("call") ’电话

Sql= "Select * from 表名 where 1=1" ’1=1 避免所有查询字段为空时出错

if name <>"" then
Sql= Sql & "and 姓名 like ’%"& name &"%’"
end if
if sex <>"" then
Sql= Sql & "and 性别 = ’"& sex &"’" ’这个不是模糊查询了
end if
if call <>"" then
Sql= Sql & "and 电话 like ’%"& call &"%’"
end if
......
在此,你要注意到姓名、性别、电话这三个字段在数据库中的类型应为“文本”类型,否则查询时会出现“数据类型不匹配”错误。
如果三个条件均无输入,点击“查询”时将显示数据库中的所有记录,可能这是你不希望的,可以应该加入一个判断:当三个条件均无输入时,显示“请输入查询条件”,并中断输出到客户浏览器(response.end)例句如下:

if request.form("name")="" and request.form("sex")="" and request.form("call")="" then
response.write("请输入查询条件(可模糊查询)")
response.end
end if
切记:sql="select * from 表名 where 姓名 ... 电话 like ... "
必须在一行内输入完,而不能用回车符分段,因为vbs多行被认为是多个语句,这是许多初写者常犯的错误。如果你想分多段写,可以用上面的方法在现有变量基础上逐步增加查询语句的各个组成部分并把它存在同一变量内实现。在封闭引号之前或者在打开引号之后你需要增加空格,这样才能保证字符串连接起来的时候你没有把几个词凑到了一块。

ASP.NET如何做个简单的模糊查询并显示结果?

VS2005里面有DataGridView这个控件嘛,是DataGrid的改进版。

如果工具箱里面没有,可以用楼上说的方法找到。

简单的模糊语句主要就是灵活的运用LIKE关键字

比如说一张表里有姓名,年龄,性别等字段

现在要张姓张的人的资料

string strConn="server=local;database=test;uid=sa;pwd="; //以SQL SEVER为例

SqlConnection myConn=new SqlConnection(strConn); //实例化一个连接

string strSql;

strSql = "SELECT * FROM UserInfo WHERE UserName LIKE '%" + this.TxtUserLastName.text.toString().Trim() + "%'";//这句比较简单,模糊查询关键是LIKE部分。

SqlCommand cmd = new SqlCommand(strSql,myConn);

SqlDataAdapter da = new SqlDataAdapter();

DataSet ds = new DataSet();

da.SelectCommand = cmd;

da.Fill(ds,"UserInfo");//讲查询结果填充到ds中

this.DataGridUserInfo.DataSource = ds;//设置DataGird的数据源。也就是刚填充的ds

this.DataGridUserInfo.DataBind();

爱乐情感还为您提供以下相关内容希望对您有帮助:

在ASP.NET中如何实现模糊查询功能?

假如TextBox 的ID是text1,SQL语句可以这么写:string sql = "select * from 表 where 查询字段 like '%"+text1.Text.ToString()+"%'";

asp.net如何实现多条件选择模糊查询..

如果三个条件均无输入,点击“查询”时将显示数据库中的所有记录,可能这是你不希望的,可以应该加入一个判断:当三个条件均无输入时,显示“请输入查询条件”,并中断输出到客户浏览器(response.end)例句如下:if request...

ASP.NET如何做个简单的模糊查询并显示结果?

string strSql;strSql = "SELECT * FROM UserInfo WHERE UserName LIKE '%" + this.TxtUserLastName.text.toString().Trim() + "%'";//这句比较简单,模糊查询关键是LIKE部分。SqlCommand cmd = new SqlCommand(strS...

ASP.NET中模糊搜索 求助!!

你可以用like匹配的。如:文本框里输入的是 123 可以这样查询数据库。select * from 信息表 where 学号 like "%123%"这种方法可以的。不过当数据量太大的时候 使用like关键字 很消耗性能的。

在ASP.NET如何将textbox中输入的字进行模糊查询,将结果显示在datalist...

select * from 表名 where 字段名 like '%要填写的值%'将查询出来的结果,绑定到datalist中

ASP.NET模糊查询怎么写

"姓名 like '%" &amp; textbox1.text &amp; "%'"

asp.net mvc 模糊查询 怎么写

列表上面 需要一个控件来接收你模糊查询的参数 如 用户名:xxx 传递到后台之后 查询表信息 使用 like '% xxx %' 执行完成后返回结果集 前端页面重新加载返回的结果集即可

asp.net 下拉框或者文本框控件 实现模糊查询功能(只有模糊查询结果选 ...

使用ajax 和标签的 onkeyup事件 ajax 传入输入的值后台查询返回 前台可以回去后台返回值,前台 或后台 处理成指定格式后 使用jquery 更改页面html 就可以

asp.net中gridview模糊查询定位

在数据库中进行模糊查询只能查询相连的字符,如果你模糊查询间隔的字符是查不到的。就是想做百度谷歌这种效果现在时做不出来的。你可以为每条记录定义关键字,然后查询关键字,这样较为准确一点。将查询的记录放在一个DataTable...

怎样用三层中实现模糊查询(asp.net.c#)

'%" + txtCond.Text + "%' or DeptName like '%" + txtCond.Text + "%' or PostName like '%" + txtCond.Text + "%'";最后显示出来 可以按照表中所有的字段模糊查询,只需一个textbox Are you 明白?

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

Top