Tôi thực hiện tham gia bên ngoài và thực hiện thành công trong informix
cơ sở dữ liệu nhưng tôi nhận được ngoại lệ sau trong mã của mình:
DataTable dt = TeachingLoadDAL.GetCoursesWithEvalState(i, bat);
Không thể kích hoạt các ràng buộc. Một hoặc nhiều hàng chứa các giá trị vi phạm các ràng buộc không null, duy nhất hoặc khóa ngoài.
Tôi biết vấn đề, nhưng tôi không biết cách khắc phục.
Bảng thứ hai tôi tạo liên kết ngoài trên chứa khóa chính tổng hợp không có giá trị trong truy vấn nối ngoài trước đó.
BIÊN TẬP:
SELECT UNIQUE a.crs_e, a.crs_e || '/ ' || a.crst crs_name, b.period,
b.crscls, c.crsday, c.from_lect, c.to_lect,
c.to_lect - c.from_lect + 1 Subtraction, c.lect_kind, e.eval, e.batch_no,
e.crsnum, e.lect_code, e.prof_course
FROM rlm1course a, rfc14crsgrp b, ckj1table c, mnltablelectev d,
OUTER(cc1assiscrseval e)
WHERE a.crsnum = b.crsnum
AND b.crsnum = c.crsnum
AND b.crscls = c.crscls
AND b.batch_no = c.batch_no
AND c.serial_key = d.serial_key
AND c.crsnum = e.crsnum
AND c.batch_no = e.batch_no
AND d.lect_code= e.lect_code
AND d.lect_code = ....
AND b.batch_no = ....
Vấn đề xảy ra với bảng cc1assiscrseval
. Khóa chính là (batch_no, crsnum, speech_code).
Làm thế nào để khắc phục vấn đề này?
BIÊN TẬP:
Theo @PaulStock
lời khuyên: Tôi làm những gì anh ấy nói, và tôi nhận được:
? dt.GetErrors () [0] {System.Data.DataRow} HasErrors: true ItemArray: {object [10]} RowError: "Cột 'eval' không cho phép DBNull.Value."
Vì vậy, tôi giải quyết vấn đề của mình bằng cách thay thế e.eval
, NVL (e.eval,'') eval
và điều này giải quyết vấn đề của tôi. Cảm ơn rất nhiều.
,e.eval,e.batch_no,e.crsnum,e.lect_code,e.prof_course
khỏi truy vấn, mọi thứ đều ổn. vấn đề là gì