您的位置:首页 > 编程语言 > C#

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.完成。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐