一个combox,里面用了TextChanged事件,具体功能是这样的,比如输入n,出来南京,南宁,也就是拼音检索,有关n开头的都出来,输入s,出来上海之类的,我的代码实现如下:
private void cmbName_TextChanged(object sender, EventArgs e)
{
SqlConnection conn;
SqlDataReader sdr;
char pun = '%'; SqlCommand cmd;
string strConnectionString = "server=.;uid=sa;pwd=sa;database=DB";
conn = new SqlConnection(strConnectionString);
conn.Open();
cmd = conn.CreateCommand();
string strKeyWords = cmbName.Text;
string strResult = cmd.CommandText = "select AreaName from Area where AreaSpellCHS like '" +strKeyWords + pun + "'";
sdr = cmd.ExecuteReader();
while (sdr.Read())
{
cmbName.Items.AddRange(new object[] { sdr["AreaName"] });
}
sdr.Close();
//cmbName.Items.Clear();
}这样已经把功能实现了,现在有两个小问题,第一个是我输入n以后,出来南京,南宁,然后我把n删了,重输入一个s,就出来上海,当时南京和南宁也在下面,就是三个都有了,在输入s,又出来江苏,上海,南京,南宁,我要的效果是如果输入j,就出来江苏,输入n,就出来南京和南宁,就类似于webform上的autopostback要设成true,要刷新一下,我是这么理解的,不能有刚才查过的记录在里面,请大家帮忙.
第二个问题是我输入n以后,要点旁边向下的箭头才能有南京和南宁来,有没有办法一输入n,那个下拉的菜单就自动打开?可能有这个属性吧,我没找到,呵呵,大家帮帮忙,谢谢了!
private void cmbName_TextChanged(object sender, EventArgs e)
{
SqlConnection conn;
SqlDataReader sdr;
char pun = '%'; SqlCommand cmd;
string strConnectionString = "server=.;uid=sa;pwd=sa;database=DB";
conn = new SqlConnection(strConnectionString);
conn.Open();
cmd = conn.CreateCommand();
string strKeyWords = cmbName.Text;
string strResult = cmd.CommandText = "select AreaName from Area where AreaSpellCHS like '" +strKeyWords + pun + "'";
sdr = cmd.ExecuteReader();
while (sdr.Read())
{
cmbName.Items.AddRange(new object[] { sdr["AreaName"] });
}
sdr.Close();
//cmbName.Items.Clear();
}这样已经把功能实现了,现在有两个小问题,第一个是我输入n以后,出来南京,南宁,然后我把n删了,重输入一个s,就出来上海,当时南京和南宁也在下面,就是三个都有了,在输入s,又出来江苏,上海,南京,南宁,我要的效果是如果输入j,就出来江苏,输入n,就出来南京和南宁,就类似于webform上的autopostback要设成true,要刷新一下,我是这么理解的,不能有刚才查过的记录在里面,请大家帮忙.
第二个问题是我输入n以后,要点旁边向下的箭头才能有南京和南宁来,有没有办法一输入n,那个下拉的菜单就自动打开?可能有这个属性吧,我没找到,呵呵,大家帮帮忙,谢谢了!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货