2013-04-08 24 views
5

Tôi đang tạo Biểu mẫu Windows ở chỗ tôi có hộp tổ hợp, Tôi đã tải một số 'Số hóa đơn', từ máy chủ SQL 2010. Tôi muốn hiển thị Số hóa đơn làm loại Người dùng vào hộp Combo. Ví dụ: nếu loại Người dùng '100' thì số hóa đơn bắt đầu bằng '100' sẽ được hiển thị trong menu thả xuống.Tìm kiếm Hộp kết hợp như Google Tìm kiếm

Xin vui lòng giúp, Cảm ơn trước ...

+0

có thể trùng lặp: kiểm tra điều này http://stackoverflow.com/questions/11780558/c-sharp-winforms-combobox-dynamic-autocomplete –

Trả lời

8
DataTable temp; 
    DataTable bank; 
    private void Form1_Load(object sender, EventArgs e) 
    { 
     comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
     comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems; 

     temp = DbRdRw.SqlDbRead("Select * from BankMaster", "BankMaster"); 

     DataView dtview = new DataView(temp); 
     dtview.Sort = "BankName DESC"; 
     bank = dtview.ToTable(); 

     comboBox1.DataSource = bank; 
     comboBox1.ValueMember = "BankName"; 
     comboBox1.DisplayMember = "BankName"; 
    } 
+1

Tôi đã thử mã này và nó đã hoạt động ... Cảm ơn tất cả những ai đã cố gắng trả lời câu hỏi của tôi ... – Sam

1

Những gì bạn cần làm ở đây là:

  • Nhận một sự kiện mỗi khi người dùng gõ một kí tự vào hộp văn bản.
  • Có một chức năng chạy trên sự kiện này để đọc các nội dung của hộp ('100' trong ví dụ của bạn) và bắn một truy vấn ra khỏi cơ sở dữ liệu của bạn, ví dụ:

    SELECT InvoiceNumber from Invoices WHERE InvoiceNumber LIKE '100%'

  • hiển thị các kết quả khớp lại trong hộp kết hợp để người dùng chọn.
+0

không có trong MSSQL '*' thay vì '%'? – EaterOfCode

+1

Tôi đã sử dụng '%' với thành công trong SQL Server 2010 ít nhất – snappieT

+0

Bạn đúng, lỗi của tôi – EaterOfCode

3

Điền combo box của bạn với các vật phẩm từ cơ sở dữ liệu về tải sau đó bộ hộp Combo tính:

AutoCompleteMode: Đề nghị Nối

AutoCompleteSource: ListItems

Make đảm bảo đặt kiểu DropDown thành DropDown để người dùng có thể nhập. Chỉ cần thực hiện xác thực nếu văn bản được nhập vào hộp tổ hợp không tồn tại trong danh sách trước khi chấp nhận.

hy vọng điều đó sẽ hữu ích.

+0

wow cảm ơn !!! Tôi không biết điều này. – AKS