Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Làm sao để combobox thứ 2 ko có thông tin mà combobox thứ 1 đã chọn?

  1. #1
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Mặc định Làm sao để combobox thứ 2 ko có thông tin mà combobox thứ 1 đã chọn?

    Tôi đang làm đồ án quản lý chuyến bay, về phần khởi tạo tuyến bay tôi dùng 2 combobox, mỗi cái chứa danh sách các sân bay, tôi muốn là sau khi combobox1 được chọn thì combobox2 sẽ loại trừ cái thông tin của combobox1 đi và ngược lại. Tôi nghĩ cách làm như sau:
    Tạo Store Procedure:
    Code:
    
    ALTER PROCEDURE spSanBayXSelect(@ma char(5))
    AS select * from tblSanBay where (MaSB<>@ma)
    
    Sau đó viết hàm lấy dataset như sau:
    Code:
    
    protectedDataSet OpenDataSet(string sSql,SqlParameter p)
    {
    cn.Open();
    SqlDataAdapter da = newSqlDataAdapter();
    da.SelectCommand = newSqlCommand(sSql, cn);
    da.SelectCommand.CommandType = CommandType.StoredProcedure;
    foreach (SqlParameter p in para)
    {
    da.SelectCommand.Parameters.Add(p);
    }
    DataSet ds = newDataSet();
    ds.Clear();
    da.Fill(ds);
    cn.Close();
    return ds;
    }
    
    Tiếp theo là gọi hàm đó:
    Code:
    
    publicDataSet GetAll(CSanBayPL SB)
    {
    return OpenDataSet(CStoreName.spSBXSel, newSqlParameter("@ma", SB.ma));
    }
    
    Sự kiện sau khi combobox1 có giá trị:
    Code:
    
    privatevoid cbbFrom_SelectedIndexChanged(object sender, EventArgs e)
    {
    sb.ma = cbbFrom.Text;
    cbbTo.DataSource = sb.GetAll();
    cbbTo.ValueMember = sb.GetAll().Columns[0].ColumnName;
    cbbTo.DisplayMember = sb.GetAll().Columns[1].ColumnName;
    cbbTo.Text = "";
    }
    
    Nhưng kết quả là ko đạt được như mong muốn, vẫn hiện ra đầy đủ.
    Mong các bạn, ai đã từng làm về cái này thì chỉ giúp với, tôi làm trên mô hình 3-tier, còn hơi mù mờ về cái sql lắm.

  2. #2
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Đã tìm ra nguyên nhân, hix
    Chỉ cần sửa thành:
    Code:
    sb.ma = cbbFrom.SelectedValue.ToString();
    là xong bởi vì cái combobox này tôi load lên Tên của sân bay và lưu trữ giá trị là mã sân bay nên nó so sánh bị sai thui. Sorry bà con, học nhiều quá nên lú lẫn mất rồi, mất cả ngày mới thấy sai.

  3. #3
    Ngày gia nhập
    11 2007
    Bài viết
    294

    huynguyen ah !
    Cái này huynguyen làm y hệt dark hồi năm thứ 3 .Có điều hồi ấy dark làm trên VB mí lại Access .
    dark có thể gợi ý cho huynguyen một cách .Có lẽ huynguyen thích được gợi ý hơn là được trả lời thẳng (cái này là dark tự luận bản thân có gì sai xin đc lượng thứ ).
    Các bước làm thế này
    1 - load dữ liệu ra 1 cái table cache để sau này có thể khôi phục lại mà ko cần chọc vào server.
    2 - load dữ liệu vào 2 cái combo bằng datasource.
    3 - khi 1 cái combo có event selectedindexchage thìnạp lại dữ liệu và remove cái datarow chứa nó ra khỏi datasource của cái còn lại.Néu huynguyen chưa biết làm thế nào thì có thể đọc hàm find hoặc select,datarowcollection của datatable .
    Hope it's help!
    Is the moon rising...

  4. #4
    Ngày gia nhập
    10 2006
    Bài viết
    107

    Correct, hix đang định ngồi demo xem lại thì máy treo. Cách của darkan hạn chế viêc truy xuất vào database (tăng performance).
    Nói là một chuyện, làm là một chuyện. Chi bằng ta làm xong rồi hãy nói như vậy thì nói và làm sẽ là một chuyện.

  5. #5
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Thông cảm, ngu hơi lâu nên chưa hiểu ý lắm, có code minh họa thì cảm ơn. 3-tier mệt quá, lằng nhằng cái này qua cái khác, mỗi lần muốn sửa phải sửa 3 4 chỗ.

  6. #6
    Ngày gia nhập
    11 2007
    Bài viết
    294

    Mặc định Làm sao để combobox thứ 2 ko có thông tin mà combobox thứ 1 đã chọn?

    huynguyen ko hiểu phần nào?
    Table cache là 1 cái datatable bình thường thôi .Dữ liệu được load vào đấy.Sau này cần dữ liệu thì chỉ cần lấy ở đó ra,ko cần lấy từ db ra nữa.Cách này hay được sử dụng cho các table được dùng nhiều mà ít thay đổi.
    Còn hàm load dữ liệu vào combo thì cứ datasource mà táng .
    Nếu vẫn chưa hiểu thì đợi chút dark sẽ làm cho 1 cái demo .Dạo này đang hơi bận .
    Is the moon rising...

Các đề tài tương tự

  1. Gọi combobox font và combobox size riêng biệt như thế nào?
    Gửi bởi 7777777 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 15
    Bài viết cuối: 11-12-2011, 05:52 PM
  2. Trả lời: 7
    Bài viết cuối: 04-10-2011, 11:55 PM
  3. Giá trị combobox không giống với giá trị combobox ở datagridview khi mình insert
    Gửi bởi suzuke169 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 25-07-2011, 03:48 PM
  4. Khai báo ComboBox comb= (ComboBox)sender có ý nghĩa gì?
    Gửi bởi danchithancong trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 29-07-2009, 05:21 PM
  5. Tạo Combobox trên Datagirdview | Làm thế nào add combobox vào datagrid với C#?
    Gửi bởi hvcuongit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 10-04-2009, 05:12 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn