在文本框中键入时搜索C#

时间:2014-02-13 19:44:17

标签: c# winforms entity-framework

我有两个文本框。一种是键入CustomerId,另一种是显示客户名称。

我想要做的是:我想在CustomerName输入时获取CustomerId文本框中的搜索结果(获取与CustomerId相关的相关客户名称)。这不是自动完成的。我想在不按文本框中输入或按下按钮的情况下获得结果。

这样做的最佳方法是什么。我使用了textbox_textchanged事件。还有其他更好的方法吗?我正在使用实体框架。

2 个答案:

答案 0 :(得分:3)

您可以使用TextChanged event.Here就是一个例子:

if(txtCustomerId.Text.Length > 0)
{
    int id;
    if(int.TryParse(txtCustomerId.Text, out id))
    {
       using (var ctx = new MyDbContext())
       {
            // get customer name by Id, for example:
           var name = ctx.Customers.Where(c => c.CustomerId == id)
                    .Select(c => c.CustomerName)
                    .FirstOrDefault();

           if (name != null) txtCustomerName.Text = name;
       }
    }
}

答案 1 :(得分:3)

您可以使用textbox_textchanged事件,但是,您要考虑的一件事是,为了使其工作,您将需要在文本值更改时触发数据库查询。在每次按键操作时执行此操作将是多余的,因此您将要以某种方式限制事件。 (反应式扩展为此提供了一些很棒的功能)。之后,您将必须使用实体框架查询中的结果来填充文本框。没有看到任何来自您的代码的尝试,更难以提供更具体的建议,但这是您正在谈论的功能通常实现的方式。