c#中的文本框既textbox控件,如何实现用数据库做数据源进行自动完成功能,而不是visual studio中带的那几种,并且还要是动态的,能 c#中的文本框既textbox控件,如何实现用数据库做数据源进行自动完成功能,而不是visual studio中带的那几种,并且还要是动态的,能根据数据库的变化而变化。请专家们指教,谢谢!根据数据库的变化而变化。请指教,谢谢!

解决方案 »

  1.   

    跟数据库连写来对吗?
    设置数据绑定即可。TextBox1.DataBinding.Add(new Binding("Text", MyDataSet.Tables["Table1"],"MyDataColumn"));
      

  2.   

    根据数据库的变化而变化
    ------------------
    你怎么知道数据库的数据变化了呢?
    建议:你可以在TextBox获取输入焦点的时候去数据库取一下最新的数据,设置TextBox.AutoCompleteSource 属性为AutoCompleteSource.CustomSource,将取到的数据添加到TextBox.AutoCompleteCustomSource 属性中来实现。
      

  3.   

    楼主是不是想做google搜索栏中的效果?
    输入“a”,就出来下拉选中:
    aaa
    abc
    avi
    ...
    可以根据需要先查询几个列出选项:
    select top 10 fieldname from tablename where fieldname like "a%"
    放到AutoCompleteCustomSource中。WinForm还是WebForm?
      

  4.   

    放到AutoCompleteCustomSource中的,应该是WinForm的了,我的环境是VS2005。
      

  5.   

    大概是这样,楼主根据自己情况修改:this.textBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
    this.textBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;private void Form1_Load(object sender, EventArgs e)
    {
        // TODO: 这行代码将数据加载到表“tempDataSet.temp”中。您可以根据需要移动或移除它。
        this.tempTableAdapter.Fill(this.tempDataSet.temp);
        textBox1.AutoCompleteCustomSource.Clear();
        foreach (DataRow row in tempDataSet.temp.Select())
        {
            textBox1.AutoCompleteCustomSource.Add(row.ItemArray.GetValue(1).ToString());
        }
    }
      

  6.   

    .Net对IAutoComplete的实现有问题,因为那个建议选项列表是在另一个线程里面,所以在列表搜寻AutoCompleteCustomSource的时候主线程把AutoCompleteCustomSource替换掉会导致异常。XP和2003实现了IAutoCompleteDropDown,可以用这个接口在列表正在显示的时候强迫列表刷新。