OleDbConnection thisConnection = new OleDbConnection(
@"Provider = Microsoft.Jet.OLEDB.4.0;Data Source =D:\tmp\stdreg32.mdb"); //Open connection object
 thisConnection.Open(); //Create DataAdapter object for update and other opration
 OleDbDataAdapter thisAdapter = new OleDbDataAdapter(
"SELECT CourseID,CourseTitle FROM Course", thisConnection); //Create CommandBuilder object to build SQl command
OleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);  //Create DataSet to contain related data tables rows, and columns
 DataSet thisDataSet = new DataSet(); //Create DataAdapter for each table and fill
 OleDbDataAdapter CourseAdapter = new OleDbDataAdapter(
"SELECT * FROM Course", thisConnection); OleDbDataAdapter SectionAdapter = new OleDbDataAdapter(
"SELECT * FROM Pst", thisConnection);
 CourseAdapter.Fill(thisDataSet, "Course");
SectionAdapter.Fill(thisDataSet, "Pst"); //Set up DataRelation between Course and Pst
 System.Data.DataRelation CourseSectionRet = thisDataSet.Relations.Add("CoursePst",
thisDataSet.Tables["Course"].Columns["CourseID"],
thisDataSet.Tables["Pst"].Columns["CourseID"]);为什么在DataRelation这块出现错误,错误信息如下:未处理的“System.ArgumentException”类型的异常出现在 system.data.dll 中
其他信息:不能启用此约束,因为不是所有的值都具有相应的父值。请高手指点,谢谢

解决方案 »

  1.   

    在添加一条关系时,有主外键之分,Add方法的第二个参数是主键,第三个参数是外键,如果这两个弄反了,就会出现上面的错误。你可以查查看!
      

  2.   

    因为pst这个Table里面的CourseID跟Course这个Tabel里面的 CourseID 有不能对应上的数据,估计是跟你以前的测试数据有关系,你可以尝试把数据库中的两个表清空,从新添加几条数据看看