Về vấn để load dữ liệu từ SQL vào Combobox

Cho em hỏi làm sao để load dữ liệu từ một bảng trong SQL vào Combobox??? Em viết đoạn code sau nó không chỉ load dữ liệu vô mà nó còn tự động thêm mới dữ liệu vào bảng mà mình cần load nữa.
Ví dụ: Em thêm mới vào một Ngành Kỹ thuật phần mềm trong Khoa Công nghệ thông tin rồi lưu lại thì nó lại tự động lưu thêm một khoa Công nghệ thông tin trong bảng Khoa nữa.
Em chỉ muốn đổ dữ liệu từ TenKhoa từ bảng Khoa sang combobox frmNganh thôi. Ai biết chỉ em với. Em cám ơn nhiều. :frowning:

public void LoadComboBox()
{
    DataTable dt = new DataTable();
    connection.Open();
    try
    {
        SqlDataAdapter da = new SqlDataAdapter("Select TenKhoa From Khoa", connection);
        da.Fill(dt);
        connection.Close();
    }
    catch(Exception ex)
    {
        throw new Exception("Error " + ex.ToString());
    }

    try
    {
        cbbTenKhoa.DataSource = dt;
        cbbTenKhoa.DisplayMember = "TenKhoa";
        cbbTenKhoa.ValueMember = "TenKhoa";
    }
    catch(Exception ex)
    {
        MessageBox.Show("Có lỗi khi load dữ liệu!\n", ex.ToString());
    }
} 

Cái này e fai xem lại code lúc thêm 1 ngành vào.

A ngĩ đoạn code load dữ liệu vào combobox này phải ổn chứ nhỉ? Nó không thể tự động thêm mới dữ liệu vào được ??? e thử dùng đoạn này xem

cbbTenKhoa.DataSource = dt.Copy();
 cbbTenKhoa.DisplayMember = "TenKhoa";
 cbbTenKhoa.ValueMember = "TenKhoa";

Dạ e làm đc r a. E sửa lai ValueMember = "MaKhoa" thì đc a. Nhưng e cũng chưa hiểu tại sao???
A cho em hỏi nếu e có 2 combobox 1 cái là Khoa cái Ngành. Giả sử em chọn Khoa: CNTT thì combobox của Ngành chỉ hiện những Ngành thuộc khoa CNTT thì e phải làm sao ạ? Có phải là viết câu truy vấn SQL hay em phải bắt sự kiện selected của commbox Khoa ạ?

Trong sự kiện SelectedIndexChanged của combobox KHOA, e viết truy vấn lấy tất cả các ngành của khoa được chọn (lấy mã khoa dc chọn bằng cách lấy cmbKHOA.SelectedValue) rồi gắn vào Combobox NGÀNH.

private void cbbTenKhoa_SelectedIndexChanged(object sender, EventArgs e)
        {
            cbbTenNganh.DataSource = xl.LayDanhSach("Select * From Nganh Where TenKhoa = '" + cbbTenKhoa.SelectedValue + "'");
            cbbTenNganh.DisplayMember = "TenNganh";
            cbbTenNganh.ValueMember = "MaNganh";
        }

Làm như vậy đúng k a? Em cho đoạn này vào rồi mà giờ nó không hiện ngành nữa!!! :’(

e sửa tên khoa thành makhoa trong câu truy vấn thử xem ???

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?