I think opening a connection and doing a query every time will be very expensive, and unnecessary.
If the table you're querying against isn't very large, you could pull down the results one time....and then execute an ADO.NET rowfilter everytime the user types something.
Or, you could have the user type as much info as they want, and then click a search button. You could bring back all the matches (even partial matches), and display them in a listbox or a grid.
Just some random thoughts....
The textbox in VS.NET 2005 supports AutoComplete - I haven't looked into it in any detail, however.
Kevin