C#简单智能查询
2020-08-08 17:26
1196 查看
C#简单智能查询
效果
代码
这是我在网上找的方法,不同的是加入了角色。
1.新建GetChineseSpell和getSpell:
static public string GetChineseSpell(string strText) { int len = strText.Length; string myStr = ""; for (int i = 0; i < len; i++) { myStr += getSpell(strText.Substring(i, 1)); ; } return myStr; }
static public string getSpell(string cnChar) { byte[] arrCN = Encoding.Default.GetBytes(cnChar); if (arrCN.Length > 1) { int area = (short)arrCN[0]; int pos = (short)arrCN[1]; int code = (area << 8) + pos; int[] areacode = { 45217, 45253, 45761, 46318, 46826, 47010, 47297, 47614, 48119, 48119, 49062, 49324, 49896, 50371, 50614, 50622, 50906, 51387, 51446, 52218, 52698, 52698, 52698, 52980, 53689, 54481 }; for (int i = 0; i < 26; i++) { int max = 55290; if (i != 25) { max = areacode[i + 1]; } if (areacode[i] <= code && code < max) { return Encoding.Default.GetString(new byte[] { (byte)(65 + i) }); } } return "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"; } else { return cnChar; } }
2.拖入一个comboBox,在comboBox1_TextUpDate中编辑(因为本系统角色较多,所以每个if下面的内容基本相同):
private void comboBox1_TextUpdate(object sender, EventArgs e) { if (textBox10.Text.Trim() == "工程师") { string a = comboBox1.Text.Trim(); DBHelper.conn.Open(); SqlCommand cmd = new SqlCommand(a, DBHelper.conn); cmd.CommandText = "select yaopin from Table_yaopin where weishengyuan = '工程师'"; SqlDataReader sdr = cmd.ExecuteReader(); List<string> sList = new List<string>(); while (sdr.Read()) { sList.Add(sdr["yaopin"].ToString().Trim()); } DBHelper.conn.Close(); comboBox1.DroppedDown = true; Cursor.Current = Cursors.Default; foreach (string str in sList) { if (a.Length > 0) { if (GetChineseSpell(str.ToString()).ToLower().Contains(comboBox1.Text.ToLower())) { if (comboBox1.Items.IndexOf(str) < 0) comboBox1.Items.Add(str); } else { if (comboBox1.Items.IndexOf(str) >= 0) comboBox1.Items.Remove(str); } } else { comboBox1.DroppedDown = false; comboBox1.Items.Clear(); } } } if (textBox10.Text.Trim() == "卫生院药房") { string a = comboBox1.Text.Trim(); DBHelper.conn.Open(); SqlCommand cmd = new SqlCommand(a, DBHelper.conn); cmd.CommandText = "select yaopin from Table_yaopin where work = '" + textBox11.Text + "'"; SqlDataReader sdr = cmd.ExecuteReader(); List<string> sList = new List<string>(); while (sdr.Read()) { sList.Add(sdr["yaopin"].ToString().Trim()); } DBHelper.conn.Close(); comboBox1.DroppedDown = true; Cursor.Current = Cursors.Default; foreach (string str in sList) { if (a.Length > 0) { if (GetChineseSpell(str.ToString()).ToLower().Contains(comboBox1.Text.ToLower())) { if (comboBox1.Items.IndexOf(str) < 0) comboBox1.Items.Add(str); } else { if (comboBox1.Items.IndexOf(str) >= 0) comboBox1.Items.Remove(str); } } else { comboBox1.DroppedDown = false; comboBox1.Items.Clear(); } } } if (textBox10.Text.Trim() == "村医") { string a = comboBox1.Text.Trim(); DBHelper.conn.Open(); SqlCommand cmd = new SqlCommand(a, DBHelper.conn); cmd.CommandText = "select yaopin from Table_yaopin where weishengyuan = '" + textBox11.Text + "' and work = '" + textBox3.Text + "'"; SqlDataReader sdr = cmd.ExecuteReader(); List<string> sList = new List<string>(); while (sdr.Read()) { sList.Add(sdr["yaopin"].ToString().Trim()); } DBHelper.conn.Close(); comboBox1.DroppedDown = true; Cursor.Current = Cursors.Default; foreach (string str in sList) { if (a.Length > 0) { if (GetChineseSpell(str.ToString()).ToLower().Contains(comboBox1.Text.ToLower())) { if (comboBox1.Items.IndexOf(str) < 0) comboBox1.Items.Add(str); } else { if (comboBox1.Items.IndexOf(str) >= 0) comboBox1.Items.Remove(str); } } else { comboBox1.DroppedDown = false; comboBox1.Items.Clear(); } } } }
3.完成。
相关文章推荐
- C# textBox关键字查询数据库智能提示
- C#连接sqlserver分页查询的两个简单的方法
- C#个人重构之简单查询
- (016):[演练]创建简单对象模型和LINQ查询(C#)
- C#简单访问SQLite数据库的方法(安装,连接,查询等)
- C#简单查询SQLite数据库是否存在数据的方法
- 光脚丫学LINQ(016):[演练]创建简单对象模型和LINQ查询(C#)
- 用C# 简单实现带查询功能的ComboBox组件
- C#等语言 反射机制实现简单 智能语音人机交互(1)-- 皓月
- 使用c#实现简单的数据库添加和查询
- C# 一个简单分词程序的思路和代码(四) 键树 查询记录
- C#等语言、反射机制实现简单 智能语音人机交互(2)-- 皓月
- 程序员简单打造一个灵活智能的自动化运维系统C#实例程序
- C# EF框架简单实现动态条件查询、排序、分页
- 光脚丫学LINQ(016):创建简单对象模型和LINQ查询(C#)
- 一个简单实用的sql数据库查询工具(c#)
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- C#2005 一个简单的查询界面代码:DataGridView使用、图像显示、复合查询样例
- C#基础之LINQ查询语句的简单使用(一)
- c#中利用简单枚举和标志枚举(组合,删除,查询是否包含)