Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Xử lý hai primary key trong 1 Table như thế nào?

    Tình hình là mình có 1 bảng medical history gồm có 2 khoá chính là cột HistoryID(tăng tự động) với PatientID. Mình muốn là khi add new MedicalHistory thì ko được trùng cột PatientID, có nghĩa là khi mà add thêm Medical History , thì cột PatientID của các dữ liệu ko được trùng nhau.
    Mình dùng code insert , có 2 khoá chính như vậy, mà check được mỗi cái HistoryID còn PatientID thì SQl nó cho add thoải mái.
    Bạn nào giúp mình cái ?
    Thank trước nhé !

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi goder2910
    Tình hình là mình có 1 bảng medical history gồm có 2 khoá chính là cột HistoryID(tăng tự động) với PatientID. Mình muốn là khi add new MedicalHistory thì ko được trùng cột PatientID, có nghĩa là khi mà add thêm Medical History , thì cột PatientID của các dữ liệu ko được trùng nhau.
    Mình dùng code insert , có 2 khoá chính như vậy, mà check được mỗi cái HistoryID còn PatientID thì SQl nó cho add thoải mái.
    Bạn nào giúp mình cái ?
    Thank trước nhé !
    bảng thì chỉ có 1 key thui bạn à! bạn để HistoryID tăng tự động và muốn patientID ko đc cái nào trùng cái nào khi add thêm bản ghi thì mỗi khi insert vào thì bạn kiểm tra xem cái PatientID đã có trong CSDL chưa nếu có rùi thì báo đã trùng else cho add vậy thui, nó giống như bạn kiểm trùng mã thui mà.
    chúc thành công!

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn có thể mình sơ qua cách check ID trong table được ko ?
    Mình chưa hình dung code như thế nào cả ?
    Cám ơn bạn nhé [IMG]images/smilies/clap_grin.gif[/IMG]

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn viết hàm kiểm tra xem PatientID đã tồn tại trong csdl chưa:
    Mã:
    public bool KiemTraPatientID(string patientid)
        {
            SqlDataAdapter da = new SqlDataAdapter("Select * from medicalhistory where PatientID='" + patientid + "'", ChuỗiKếtNốiTớiCSDL);
            DataTable dt = new DataTable();
            da.Fill(dt);
            if (dt.Rows.Count > 0)
                return true;
            else
                return false;
        }
        //Trong sự kiện click thêm sản phẩm bạn kiểm gọi hàm kiểm tra trên
        if(KiemTraPatientID(txtPatientID.Text)==true)
        {
          lblthongbao.Text="Mã sản phẩm đã tồn tại!";
        }
        else
    	{
            //thực hiện việc thêm sản phẩm ở đây
    	}
    vì vấn đề mình quan tâm ở đây là PatientID còn cái khóa ID tự tăng thì kệ nó ko ảnh hưởng gì còn thì thực hiện thêm sửa xóa bạn có thể căn cứ vào ID tự tăng hoặc cái PatientID cũng đc vì thực ra PatientID ko pải là khóa nhưng bạn đã kiểm soát việc trùng lặp rồi nên coi như là khóa cũng đc.
    Goodlucky!

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình làm được rồi bạn ah. Cám ơn bạn nhé ^^

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •