在Text文本改变事件中写代码实现,但会频繁地读数据库,效率很低。

解决方案 »

  1.   

    在Text文本改变事件中写代码实现,但会频繁地读数据库,效率很低。
    //
    建议加个Timer 不继续改变文本后2秒开始读取数据库取数据
      

  2.   


    string str = "server=(local);integrated security=SSPI;database=HotelDB";
                SqlConnection conn = new SqlConnection(str);
                conn.Open();
                string sql = "SELECT C_BirDate,C_Id,C_Tel From CustomerTable Where C_Name='" + this.textBox1.Text + "'";
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.ExecuteNonQuery();
                SqlDataAdapter da = new SqlDataAdapter(sql, conn);
                DataSet ds = new DataSet();
                da.Fill(ds, "CustomerTable");
                DataTable dt = ds.Tables["CustomerTable"];            this.textBox3.Text = //这里就不知道这里怎么写了
                  this.textBox3.Text = //这里就不知道这里怎么写了
      

  3.   

    建议加个Timer   不继续改变文本后2秒开始读取数据库取数据请问这个Timer该怎么写呢?我现在已经能查询出来了哈!并且能动态显示到界面上了哈,谢谢各位,请在帮助小弟一下
      

  4.   

    TextBox 有个事件叫Validating 你可以把实时需要做的东东写道这个事件里,在这里写好了你连Enter都不用 按,只要光标离开这个Textbox 就能达到你的要求。Easy。。
      

  5.   

    别用Timer ,没有必要,因为那样 太耗资源了
      

  6.   


    AutoCompleteStringCollection acsc = new AutoCompleteStringCollection();
    acsc.Add("asdjhkj");
    acsc.Add("2412312");
    acsc.Add("asdaasdkj");
    acsc.Add("78fsdfhj");
    acsc.Add("0if0sdfn");
    acsc.Add("67dasgdh");
    acsc.Add("0dasdjasd");
    acsc.Add("23ashdb");
    this.textBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
    this.textBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
    this.textBox1.AutoCompleteCustomSource = acsc;
      

  7.   


    一次读出来放内存里,TextChange时查内存中的东东。
      

  8.   

    存在内存里同样耗内存。要实现联动效果,耗资源是无法避免的。(个人认为)
    实现的方法很多。简单的就textchange吧。
      

  9.   

    设置Textbox的回发事件
    用AJAX或许也可以吧