• DataSet中错误要么InvalidConstraintException或不能在不同的数据集表之间的关系

  • 本文关于 c#,数据库database,数据集dataset,实体关系entity-relationship
  • CodeGo.net > DataSet中错误要么InvalidConstraintException或不能在不同的数据集表之间的关系
  •  

    DataSet中错误要么InvalidConstraintException或不能在不同的数据集表之间的关系



    c# 数据库database 数据集dataset 实体关系entity-relationship
    这个问题将需要一段时间,详细解释所以请原谅优先次的代码:
     public DataModule(Main main)
     {
      frmMain = main;
      InitializeComponent();
      getWarehouseData();
      createSortTables();
     }
    
     /// <summary>method : getWarehouseData
     /// Loads data from database to local objects
     /// </summary>
     private void getWarehouseData()
     {
      WarehouseDataSet dsWarehouse = new WarehouseDataSet();
      WarehouseDataSetTableAdapters.LocationTableAdapter taLocation =
       new WarehouseDataSetTableAdapters.LocationTableAdapter();
      WarehouseDataSetTableAdapters.PickOrderTableAdapter taPickOrder =
       new WarehouseDataSetTableAdapters.PickOrderTableAdapter();
      WarehouseDataSetTableAdapters.ProductTableAdapter taProduct =
       new WarehouseDataSetTableAdapters.ProductTableAdapter();
      WarehouseDataSetTableAdapters.Prod_LocTableAdapter taProd_Loc =
      new WarehouseDataSetTableAdapters.Prod_LocTableAdapter();
      taLocation.Fill(dsWarehouse.LOCATION);
      taPickOrder.Fill(dsWarehouse.PICK_ORDER);
      taProduct.Fill(dsWarehouse.PRODUCT);
      taProd_Loc.Fill(dsWarehouse.PROD_LOC);
      dtLocation = dsWarehouse.Tables["LOCATION"];
      dtPickOrder = dsWarehouse.Tables["PICK_ORDER"];
      dtProduct = dsWarehouse.Tables["PRODUCT"];
      dtProd_Loc = dsWarehouse.Tables["PROD_LOC"];
     }
     private void createSortTables()
     {
      // Modified Location Table from View
      dvSortedLocations = new DataView(dtLocation);
      dvSortedLocations.Sort = "PickTime ASC";
    
      // Modified Product Table as view
      DataView dvSortedProducts = new DataView(dtProduct);
      dvSortedProducts.Sort = "NumOfPicks DESC";
      dtSortedProduct = dvSortedProducts.ToTable();
    
      // New table for optimised Product Locations
      dtOptProd_Loc = new DataTable("OPTPROD_LOC");
      dtOptProd_Loc.Columns.Add("ProductCode", typeof(string));
      dtOptProd_Loc.Columns.Add("Location", typeof(string));
      dtOptProd_Loc.Columns.Add("StockQtty", typeof(double));
      dsWarehouse.Tables.Add(dtOptProd_Loc); 
      DataColumn parentColumn = dsWarehouse.Tables["PRODUCT"].Columns["ProductCode"];
      DataColumn childColumn = dsWarehouse.Tables["OPTPROD_LOC"].Columns["ProductCode"]; 
      DataRelation REL_Prod_OptProdLoc = new DataRelation("PRODUCTOPTPROD_LOC", parentColumn, childColumn); 
      dsWarehouse.Relations.Add(REL_Prod_OptProdLoc); 
      // New table for Picking from optimised Locations
      dsWarehouse.Tables.Add(new DataTable("OPTPICK"));
      dtOptPick = dsWarehouse.Tables["OPTPICK"];
      dtOptPick.Columns.Add("PickID", typeof(int));
      dtOptPick.Columns.Add("ProductCode", typeof(string));
      dtOptPick.Columns.Add("Location", typeof(string));
      dtOptPick.Columns.Add("PickQtty", typeof(double));
      dtOptPick.Columns.Add("SaleNumber", typeof(double));
      DataColumn parentColumn2 = dsWarehouse.Tables["LOCATION"].Columns["LocationCode"];
      DataColumn childColumn2 = dsWarehouse.Tables["OPTPICK"].Columns["Location"];
      DataRelation REL_Loc_OptPick = new DataRelation("REL_Loc_OptPick", parentColumn2, childColumn2);
      dsWarehouse.Relations.Add(REL_Loc_OptPick);
    
      parentColumn = dsWarehouse.Tables["PRODUCT"].Columns["ProductCode"];
      childColumn = dtOptPick.Columns["ProductCode"];
      DataRelation REL_Prod_OptPick = new DataRelation("REL_Prod_OptPick", parentColumn, childColumn);
      dsWarehouse.Relations.Add(REL_Prod_OptPick);
      foreach (DataRow dr in dtPickOrder.Rows)
      {
       dtOptPick.Rows.Add(dr.ItemArray);
      }
    
    写的windowsForms一个GUI,用于Access数据库应用程序。它需要的数据时,它进入新表和分析的结果。加载数据集,如图初始数据有4个表。 在createSortTables()2新表添加到和关系exisiting表补充说。然而,随着代码,当达到foreach循环的底部 CodeGo.net,以填补新dtOptPick表InvalidConstraintException显示被抛出说,优先个“位置”达到了不存在的父表(dtLocation)。在调试器中检查显示非如预期,但看在数据表中可视化没有包含任何数据6项的列表。然而检查dtLocation显示1371datarow。 于是,我就用dtLocation取代,但这种droppableInvalidConstraintException在新的DataRelation行,说“不能在不同的数据集表之间的关系”。 因此,参考在所有情况下,似乎有2个不同的实际数据集,这并保存所有数据的原始,和一个新的,当我尝试没有添加数据表。 我曾尝试申请acceptChanges中和合并,但没有奏效,至少我申请他们的方式。 任何人都知道为什么,似乎有2数据集使用或任何解决方案都将是辉煌的!
    本文地址 :CodeGo.net/1106163/
    -------------------------------------------------------------------------------------------------------------------------
    1.我会回答这个自己,为别人谁得到这个问题的好处。 发生了什么事是,我曾试图去通过MSDN演练中设置的数据库连接和表adapter(助教)了。但是我发现这些指令更想通过迷宫找到自己的方式。所以,事实证明我无论是在从工具箱拖一个数据集,并把它称为 后来宣布编程如上,连同所有的助教。 我没有料想到会得到一个错误,在这一点上有关变量的blur性 CodeGo.net,但不是引用了后来关于“在不同的数据集表之间的关系”。 的演练说明部分指出,所有这些声明是必要的。如果不从工具箱是真的拖累。我已经,所以删除所有这些声明 开始解决这个问题了。大部分的代码修改/添加表也被简化,因为该变量现在做参考的对象如预期。 另外一个相关的提示,请确认你有,你会写数据到任何表的主键集合。我忽略了这样做对我的新表,并一直得到错误的数据无法加入它与外键做 constraints。我沿着确认花了,其实有一个在数据中没有constraints问题,但缺乏一个主键是问题。
    本文标题 :DataSet中错误要么InvalidConstraintException或不能在不同的数据集表之间的关系
    本文地址 :CodeGo.net/1106163/
    1. 那位知道在PDA上编程?
    2. 不同类型与通用基类的返回列表
    3. 如何让.Net程序运行后删除自己??
    4. 解析类型层次结构的装配
    5. C# 如何调用Win32 API?
    6. “FormatException是未处理”而程序没有计算结果
    7. c# 里怎么使用 CreateObject
    8. 错误的ObjectDataSource找不到一个非泛型方法
    9. 知道excel文件名,路径,sheet名,怎样用windows程序(c#)改变excel文件指定行的颜色?
    10. VB.net发送UDP消息两倍

     
    

    Copyright © 2017 CodeGo.net
    http://codego.net/xinwen/ 足球比分网 足球比分 医药招商网 邵阳县新闻