如何运行时设定或修改DataSet中表的约束
我在帮助中找到的都是设计时的
各位高手帮帮忙呀!!!

解决方案 »

  1.   

    以下示例创建一个新的 DataRelation 并将其添加到 DataSet 的 DataRelationCollection 中。private void CreateRelation() {
        // Get the DataColumn objects from two DataTable objects in a DataSet.
        DataColumn parentCol;
        DataColumn childCol;
        // Code to get the DataSet not shown here.
        parentCol = DataSet1.Tables["Customers"].Columns["CustID"];
        childCol = DataSet1.Tables["Orders"].Columns["CustID"];
        // Create DataRelation.
        DataRelation relCustOrder;
        relCustOrder = new DataRelation("CustomersOrders", parentCol, childCol);
        // Add the relation to the DataSet.
        DataSet1.Relations.Add(relCustOrder);
     } 下面的示例检查约束的集合是否有 DataTable,并确定每个约束是否为 UniqueConstraint 或 ForeignKeyConstraint。然后显示约束的属性。private void GetConstraints(DataTable myTable){
       Console.WriteLine();
       // Print the table's name.
       Console.WriteLine("TableName: " + myTable.TableName);
       // Iterate through the collection and print each name and type value.
       foreach(Constraint cs in myTable.Constraints ) {
          Console.WriteLine("Constraint Name: " + cs.ConstraintName);
          Console.WriteLine("Type: " + cs.GetType().ToString());
          // If the constraint is a UniqueConstraint, print its properties using
          // a function below.
          if(cs is UniqueConstraint) {
             PrintUniqueConstraintProperties(cs);
          }
          // If the constraint is a ForeignKeyConstraint, print its properties
          // using a function below.
          if(cs is ForeignKeyConstraint) {
             PrintForeigKeyConstraintProperties(cs);
          }
       }
    }private void PrintUniqueConstraintProperties(Constraint cs){
       UniqueConstraint uCS;
       uCS = (UniqueConstraint) cs;
       // Get the Columns as an array.
       DataColumn[] colArray;
       colArray = uCS.Columns;
       // Print each column's name.
       for(int i = 0;i<colArray.Length ;i++) {
          Console.WriteLine("Column Name: " + colArray[i].ColumnName);
       }
    }private void PrintForeigKeyConstraintProperties(Constraint cs){
       ForeignKeyConstraint fkCS;
       fkCS = (ForeignKeyConstraint) cs;   // Get the Columns as an array.
       DataColumn[] colArray;
       colArray = fkCS.Columns;   // Print each column's name.
       for(int i = 0;i<colArray.Length ;i++) {
          Console.WriteLine("Column Name: " + colArray[i].ColumnName);
       }
       Console.WriteLine();   // Get the related columns and print each columns name.
       colArray = fkCS.RelatedColumns ;
       for(int i = 0;i<colArray.Length ;i++) {
          Console.WriteLine("Related Column Name: " + colArray[i].ColumnName);
       }
       Console.WriteLine();
    }
    你可以参考帮助里类库参考System.Data命名空间下的DataRelation类和Constraint 类的说明