mahongmin1987 2018-10-18 17:39 采纳率: 0%
浏览 2101
已采纳

c# combobox如何动态模糊查询?

需求:
每输入字符时combobox.text追加字符,读取数据库并弹出下拉列表,但是text不要不要不要自动选择下拉列表中的项,并且不能清空text,datasouce必须为datatable,因为最后需要得到选取项的(DataRowView)SelectItem.Row。
遇到的问题:
新手问题多,每次droppeddown =true时,都会清空text,并自动选择了第一项,使用textupdate事件,并且text为空或者焦点移动时,因为下拉列表会清空,如果不在开始时进行droppeddown = false,会报index不能为0的错,求大神帮解决一下,以下贴出代码。

   private void comboBox1_TextUpdate(object sender, EventArgs e)
    {
        this.comboBox1.DroppedDown = false;
        string s = comboBox1.Text;
        int newcount = s.Length - i.Length;
        i += s.Substring(i.Length, newcount);

        comboBox1.DataSource = null;
        DataSet ds = new DataSet();
        string conntext = "Uid=sa; pwd=sa; database=XZ; server=localhost";
        SqlConnection conn = new SqlConnection(conntext);
        string sql = "select * from Book where BookName like '%" + comboBox1.Text + "%'";

        if (comboBox1.Text != string.Empty)
        {
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = sql;
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            ds.Load(dr, LoadOption.OverwriteChanges, "book");
            if (ds.Tables["book"].Rows.Count > 0)
            {

                this.comboBox1.DataSource = ds.Tables[0];
                this.comboBox1.DisplayMember = "bookname";
                //this.comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
                //this.comboBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
                this.comboBox1.DroppedDown = true;

                //this.comboBox1.DataSource = ds.Tables["book"];



                //comboBox1.SelectedIndex = -1;

            }

        }
        this.comboBox1.Text = i;
        conn.Close();
        comboBox1.SelectionStart = comboBox1.Text.Length;
        Cursor.Current = Cursors.Default;
    }

展开全部

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-10-18 18:47
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 指定IP电脑的访问设置
  • ¥30 matlab ode45 未发现警告,但是运行出错
  • ¥15 vscode platformio
  • ¥15 代写uni代码,app唤醒
  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部