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.