C#System.ArgumentException:“该行已经属于另一个表“

问题场景:

出现这个异常往往是往DateTable中新增DataRow的时候报的错。这里提供一种解决方法,详见下图:

 

 

 代码如下:

     ///这个函数是用于判断新增的数据在数据库中是否已经存在如果不存在则添加。

     public
static bool UpdateMaterialMaster(MaterialModel.MED_MATERIAL_MASTERDataTable table) { MaterialModel.MED_MATERIAL_MASTERDataTable material = GetMaterialMasterList(); //int nCount = material.Count; //foreach(MaterialModel.MED_MATERIAL_MASTERDataTable.) for(int i=0;i<table.Rows.Count;i++) { var code = table.Rows[i]["MATERIAL_ID"].ToString(); var havingRow = material.FirstOrDefault(j => j.MATERIAL_ID.Trim() == code.Trim()); if (havingRow == null) {
            //这里如果使用这种方法向DateTable中添加数据则会报上述错误,但如果使用XXX.Rows.Add(xx.Rows.ItemArray)错误即可解决~
//material.AddMED_MATERIAL_MASTERRow(table.Rows[i] as MaterialModel.MED_MATERIAL_MASTERRow); material.Rows.Add(table.Rows[i].ItemArray); } } SaveData(material); return true; }

 

posted @ 2021-02-01 14:16  苏州の酱醋茶  阅读(803)  评论(0编辑  收藏  举报