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

Đề tài: Insert lỗi khi combobox cho DisplayMember không phải là khóa chính!

  1. #1
    Ngày gia nhập
    07 2011
    Bài viết
    44

    Mặc định Insert lỗi khi combobox cho DisplayMember không phải là khóa chính!

    Mình có
    + tableNganh(MaNganh, TenNganh)
    + tableLop(MaLop, TenLop, SiSo, GVCN, MaNganh)//MaNganh là khóa ngoại

    - Khi mình thêm (insert) như giao diện ở hình trên cho lớp, nếu combobox mã ngành ở trên mình cho DisplayMember = TenNganh thì kết quả insert sẽ không đúng!!!( các bạn chú ý mã ngành ở trên và mã ngành ở datagridview sau khi insert nó không đúng, VD: nhu khi mình chọn mã ngành là Đại học công nghệ thông tin => nhưng khi insert vào thì nó không ra đúng như vậy nó có thể ra các mã ngành khác)
    - Nhưng khi mình sửa DisplayMember = MaNganh thì đúng!!
    ////Code load tableNganh len combobox
    Code:
    //load len cboMaNganh
                cboMaNganh.DataSource = nganhBus.layDSNganh();
                cboMaNganh.DisplayMember = "TenNganh";
                cboMaNganh.ValueMember = "MaNganh";
    Mong các bạn giúp mình, mình muốn combobox ở trên cho hiển thị tên ngành mà gặp lỗi!!

  2. #2
    Ngày gia nhập
    07 2010
    Bài viết
    138

    Chắc là bạn insert nhầm giữa selectedValue và Text

  3. #3
    Ngày gia nhập
    07 2011
    Bài viết
    44

    Trích dẫn Nguyên bản được gửi bởi leminh_005 Xem bài viết
    Chắc là bạn insert nhầm giữa selectedValue và Text
    Bạn có thể nó rõ hơn không?
    câu truy vấn của mình
    Code:
     string sql = string.Format("INSERT INTO Lop(MaLop, TenLop, SiSo, GVCN, MaNganh, MaKhoaHoc)" + "VALUES('{0}',N'{1}','{2}',N'{3}','{4}','{5}')",lop.MaLop, lop.TenLop, lop.SiSo, lop.GVCN, lop.MaNganh,lop.MaKhoaHoc);

  4. #4
    Ngày gia nhập
    05 2010
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi t2t2t Xem bài viết
    Bạn có thể nó rõ hơn không?
    câu truy vấn của mình
    Code:
     string sql = string.Format("INSERT INTO Lop(MaLop, TenLop, SiSo, GVCN, MaNganh, MaKhoaHoc)" + "VALUES('{0}',N'{1}','{2}',N'{3}','{4}','{5}')",lop.MaLop, lop.TenLop, lop.SiSo, lop.GVCN, lop.MaNganh,lop.MaKhoaHoc);
    nếu insert đúng khi đổi thì ko liên quan gì đến câu sql này cả, bạn coi lại cái combobox

    bạn gán lop.MaNganh = cbo.SelectedValue ?

  5. #5
    Ngày gia nhập
    03 2010
    Bài viết
    9

    Bạn dùng cách này thử xem dùng

    /// <summary>
    /// Hàm load dữ liệu vào combobox
    /// </summary>
    /// <param name="cbx">Tên combobox</param>
    /// <param name="dtValue">Datatable chưa dữ liệu cần fill</param>
    /// <param name="strDisplayMember">Trường Text hiển thị</param>
    /// <param name="strValueMember">Trường lấy giá trị</param>
    public static void loadCombo(ComboBox cbx, DataTable dtValue, string strDisplayMember, string strValueMember)
    {
    DataRow row = dtValue.NewRow();
    row[strValueMember] = 0;
    row[strDisplayMember] = "[--Tất cả--]";
    dtValue.Rows.Add(row);

    dtValue.DefaultView.Sort = strValueMember;

    cbx.DataSource = dtValue;
    cbx.DisplayMember = strDisplayMember;
    cbx.ValueMember = strValueMember;

    }

    //cách để bạn lấy ra ID để Insert
    INguoiXuat = int.Parse(cboNguoiNhap.SelectedValue.ToString());

    rồi triệu gọi lên bẹn lên moduld hoá các hàm dùng chung
    Chúc vui.

  6. #6
    Ngày gia nhập
    06 2011
    Bài viết
    6

    Mặc định Insert lỗi khi combobox cho DisplayMember không phải là khóa chính!

    Hic mình cũng giống như bạn chủ thớt , có ai biết cách giải quyết không

  7. #7
    Ngày gia nhập
    02 2010
    Nơi ở
    Hà nội
    Bài viết
    101

    Trích dẫn Nguyên bản được gửi bởi lovelovelbaby Xem bài viết
    Hic mình cũng giống như bạn chủ thớt , có ai biết cách giải quyết không
    DisplayMember là TenNganh
    ValueMember là mã ngành
    Cứ thế chiến thôi hỏi chi nữa

  8. #8
    Ngày gia nhập
    06 2011
    Bài viết
    6

    Không phải bạn ơi.
    Mình làm form quản lý phòng, có 2 bảng
    - Phong(MaPhong,TenPhong,MaLoaiPhong,TinhTrangPhong,GhiChu)
    - LoaiPhong (MaLoaiPhong,TenLoaiPhong,DonGia) Khóa ngoại là MaLoaiPhong

    Mình muốn làm click chọn giá trị combobox LoaiPhong thì nó sẽ hiện ra ĐonGia theo mỗi LoaiPhong (Ví dụ : Loại 1 DonGia 300000,Loai 2 DonGia 400000)

    thì mình sử dụng select index change trong combobox là dc (mình làm dc cái này rồi),
    private void cbLoaiPhong_SelectedIndexChanged(object sender, EventArgs e)
    {
    this.txtDonGia.Text = cbLoaiPhong.SelectedValue.ToString();
    }

    nhưng vấn đề ở chỗ insert

    cbLoaiPhong.DisplayMember = "MaLoaiPhong";
    cbLoaiPhong.ValueMember = "DonGia";
    h insert thì nó báo lỗi
    string sql = "insert into Phong(TenPhong,MaLoaiPhong,TinhTrangPhong,GhiChu) values('" + txtTenPhong.Text+"','"+cbLoaiPhong.SelectedValue.T oString()+"','"+""+"','"+txtGhiChu.Text +"')";
    nếu sửa lại
    cbLoaiPhong.DisplayMember = "MaLoaiPhong";
    cbLoaiPhong.ValueMember = "MaLoaiPhong";
    thì insert được không load DonGia lên được, có cách nào toàn diện 2 cái không, bạn chỉ mình với

  9. #9
    Ngày gia nhập
    02 2010
    Nơi ở
    Hà nội
    Bài viết
    101

    cbLoaiPhong.DisplayMember = "MaLoaiPhong";
    cbLoaiPhong.ValueMember = "DonGia";//Cái này trả về đơn giá
    h insert thì nó báo lỗi
    string sql = "insert into Phong(TenPhong,MaLoaiPhong,TinhTrangPhong,GhiChu) values('" + txtTenPhong.Text+"','"+cbLoaiPhong.SelectedValue.T oString()+"','"+""+"','"+txtGhiChu.Text +"')"; sao lại lấy đơn giá cho vô mã loại phòng, thế thì làm sao mà liên kết 2 bảng được

    còn muốn hiển thị đơn giá thì bạn phải có cái bảng ntn:
    "Select p.*, lp.DonGia from Phong p left join LoaiPhong lp on lp.MaLoaiPhong = p.MaLoaiPhong"
    rồi gán source cho combobox, mỗi lần index_changed thì hiển thị lên txtDonGia
    còn bạn thích lấy cái gì từ datasouce thì thông qua thằng SelectedItem (nó là 1 phần tử của datasouce nhé)

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

  1. Hiển thị dữ liệu của combobox theo displaymember nhưng khi chọn chỉ hiển thị values
    Gửi bởi haucanpop6590 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 6
    Bài viết cuối: 03-10-2013, 05:19 PM
  2. Database với C# Insert dữ liệu vào bảng có chứa khóa ngoại lỗi The INSERT statement conflicted with the FOREIGN KEY constraint?
    Gửi bởi smile_on_sad trong diễn đàn Thắc mắc đại cương Database & Reporting
    Trả lời: 2
    Bài viết cuối: 25-05-2013, 06:13 PM
  3. Lấy displaymember trên combobox như thế nào.
    Gửi bởi vannhan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 07-09-2011, 10:30 PM
  4. 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
  5. ADO.NET Lỗi 'Cannot bind to the new display member.' khi gán DataSource, DisplayMember cho combobox
    Gửi bởi mrjone_07 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 01-06-2011, 12:12 AM

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