当前位置:编程学习 > C#/ASP.NET >>

C#自动补全问题

如何在C#(winform)中实现
在Textbox中输入用户编号,然后在下面的3个Textbox中分别实时的显示出用户相关的姓名,年龄,电话(从数据库读取)
这样的信息,意思就是说不用按下键盘的Enter,不用在另外做一个Button,请问怎么实现呢?
谢谢了!~ --------------------编程问答-------------------- TextAlignChanged
我是菜鸟... --------------------编程问答-------------------- 在Text文本改变事件中写代码实现,但会频繁地读数据库,效率很低。 --------------------编程问答-------------------- 在Text文本改变事件中写代码实现,但会频繁地读数据库,效率很低。
//
建议加个Timer 不继续改变文本后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 = //这里就不知道这里怎么写了。。。 --------------------编程问答-------------------- 建议设置用户编号的长度,当用户输入固定长度后再读取数据库,显示其他相关信息。 --------------------编程问答-------------------- 建议加个Timer   不继续改变文本后2秒开始读取数据库取数据

请问这个Timer该怎么写呢?

我现在已经能查询出来了哈!并且能动态显示到界面上了哈,谢谢各位,请在帮助小弟一下。。。 --------------------编程问答-------------------- TextBox 有个事件叫Validating 你可以把实时需要做的东东写道这个事件里,在这里写好了你连Enter都不用 按,只要光标离开这个Textbox 就能达到你的要求。Easy。。 --------------------编程问答-------------------- 别用Timer ,没有必要,因为那样 太耗资源了 --------------------编程问答-------------------- 我给了一个线程的1秒的休眠,这样实现了,可以吗? --------------------编程问答--------------------
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;
--------------------编程问答--------------------
引用 2 楼 snowdust 的回复:
在Text文本改变事件中写代码实现,但会频繁地读数据库,效率很低。


一次读出来放内存里,TextChange时查内存中的东东。 --------------------编程问答--------------------
引用 3 楼 dotgod 的回复:
在Text文本改变事件中写代码实现,但会频繁地读数据库,效率很低。
//
建议加个Timer 不继续改变文本后2秒开始读取数据库取数据

正解 --------------------编程问答-------------------- 存在内存里同样耗内存。要实现联动效果,耗资源是无法避免的。(个人认为)
实现的方法很多。简单的就textchange吧。 --------------------编程问答-------------------- 设置Textbox的回发事件
用AJAX或许也可以吧
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,