ฉันทำการเชื่อมต่อภายนอกและดำเนินการสำเร็จแล้วในinformix
ฐานข้อมูล แต่ฉันได้รับข้อยกเว้นต่อไปนี้ในรหัสของฉัน:
DataTable dt = TeachingLoadDAL.GetCoursesWithEvalState(i, bat);
ไม่สามารถเปิดใช้งานข้อ จำกัด อย่างน้อยหนึ่งแถวมีค่าที่ละเมิดข้อ จำกัด ที่ไม่เป็นโมฆะไม่ซ้ำใครหรือต่างประเทศ
ฉันรู้ปัญหา แต่ฉันไม่ทราบวิธีการแก้ไข
ตารางที่สองที่ฉันทำการรวม outer ด้านบนประกอบด้วยคีย์หลักแบบคอมโพสิตซึ่งเป็นโมฆะในแบบสอบถามการเข้าร่วม outer ด้านนอกก่อนหน้า
แก้ไข:
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 = ....
cc1assiscrseval
ปัญหาที่เกิดขึ้นกับตาราง คีย์หลักคือ (batch_no, crsnum, lect_code)
จะแก้ไขปัญหานี้ได้อย่างไร?
แก้ไข:
ตาม@PaulStock
คำแนะนำ: ฉันทำในสิ่งที่เขาพูดและฉันจะได้รับ:
? dt.GetErrors () [0] {System.Data.DataRow} HasErrors: true ItemArray: {object [10]} RowError: "คอลัมน์ 'eval' ไม่อนุญาต DBNull.Value
ดังนั้นฉันจึงแก้ปัญหาของฉันโดยแทนที่ e.eval
เป็น,. NVL (e.eval,'') eval
และนี่แก้ปัญหาของฉันได้ ขอบคุณมาก.
,e.eval,e.batch_no,e.crsnum,e.lect_code,e.prof_course
จากแบบสอบถามทุกสิ่งเป็นไปไม่เป็นไร ปัญหาคืออะไรโปรด