`
hslh22
  • 浏览: 76687 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于“该行已经属于另一个表”

    博客分类:
  • C#
 
阅读更多

将一个DataTable中的数据按条件复制到另一个DataTable中的时候

出现“该行已经属于另一个表”的错误

 

以下为转载内容:

 

   dtReturn.Rows.Add(dt.Rows[0].ItemArray);  //--这是正确的, 关键是加上这一个ItemArray

 

   

 

 

 private DataTable GetAllSons(string MemberID)
    {
        DataTable dtReturn =new DataTable();
        string sql = " select * from view_MemberInfo where RecommenderID=" + MemberID;
        if (btnSearch.CommandName.Equals("search") && !string.IsNullOrEmpty(txtKeyword.Text))
        {
            sql += " and Name='" + txtKeyword.Text.Trim() + "'";
        }

        sql = sql + " Order by AddDate Desc";

        DataTable dt = MEMBER.CreateDataTable(sql);

        dtReturn = dt.Clone();

        if(btnSearch.CommandName.Equals("search") && !string.IsNullOrEmpty(txtKeyword.Text))
        {
            if(dt.Rows.Count> 0)
            {

                //dtReturn.Rows.Add(dt.Rows[0]);  //--出现“该行已经属于另一个表”的错误


                dtReturn.Rows.Add(dt.Rows[0].ItemArray);  //--这是正确的
            }
        }
        else
        {            
            foreach (DataRow row in dt.Rows)
            {
                GetOneRow(dtReturn, row);
            }
        }
        return dtReturn;
    }

 

以下为本人自己的解决方法:

其实导致这个问题的根本不在ItemArray的转换,而在于将源表复制到目标表后,NEW的行对象本身不从属于目标表,即

 

DataTable newDatatable = datatable.Copy();

DataRow dataRow = newDatatable.NewRow();

 

这样写就不会出错了,dataRow是属性newDatatable的对象

分享到:
评论

相关推荐

    该行已经属于另一个表 的解决方法

    DataTable dt = new DataTable(); dt = ds.Tables[“All”].Clone();//把All的结构传递给dt DataRow[] dr=this....//出错提示为:该行已经属于另一个表 } //解决方法 dt.Rows.Add(dr[i].ItemArray); //这样就好了!

    asp.net中提示该行已属于另一个表的解决方法

    从一个TABLE中取一行放到另一个TABLE里报错: 该行已经属于另一个表。用下面来个方法就OK了,需要的朋友可以参考下

    asp.net 该行已经属于另一个表错误的解决方法

    从一个TABLE中取一行放到另一个TABLE里报错: 该行已经属于另一个表。的解决办法 用下面来个方法就OK了。

    利用VBA代码从一个表格检索另一个表格并且复制找到的内容

    Excel表格,想以其中某一列为索引,查找另一个表格中同样索引的行,找到该行的某个内容复制到原来的表格指定的位置中。还可以删除原有表格中重复的内容。应用场景非常多,比如:利用学生学号和考场分配表查找学生...

    MySQL下将一个表的数据插入到另外一个表的实现语句

    如果2张表的字段一致,并且希望插入全部数据,可以用这种方法: Code: 代码如下: INSERT INTO 目标表 SELECT * FROM 来源表; 比如要将 articles 表插入到 newArticles 表中,则是: 代码如下: INSERT INTO ...

    C语言数据结构 广工 作业系统 05.数组与广义表

    5.18⑤ 试设计一个算法,将...个分量是二元组表的一个下标值,指示该行中第一个 非零元素在二元组表中的起始位置。试编写一个算法, 由矩阵元素的下标值i,j求矩阵元素。试讨论这种方 法和三元组表相比有什么优缺点。

    vi技巧大全命令大全

    B 移至该行第一个字符,若光标在该行第一字符则光标移至上一行第一字符。 b 由游标所在位置之前一个字串的第一个字元 cc 删除整行,修改整行的内容。 D 以行为单位,删除游标在内后面的所有字符。 db 删除该行...

    【JavaScript源代码】antd+vue实现动态验证循环属性表单的思路.docx

    antd+vue实现动态验证循环属性表单的思路 ...一个是可动态添加的循环表单form,另一个为普通表单dateForm html  <a-form :form="form" @keyup.enter.native='searchQuery'>   <div class="dynamic-wrap"> (item,

    ceac理论题

    这是一套不错的CEAC办公信息化的模拟笔试题,

    Liquid Crystal Display 液晶显示技术

    液晶显示的原理是液晶在不同电压的作用... 为每个象素都配备一个物理的寄存器是不现实的,实际上只配备一行的寄存器,这些寄存器轮流连接到每一行象素并装入该行内容,将所有象素行都驱动一遍就显示一个完整的画面(Frame).

    SQL语法大全

    Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。 ActiveConnection Recordset对象可以通过...

    linux vi 常用命令

    vi命令列表 1、下表列出命令模式下的一些键的功能: h 左移光标一个字符 l 右移光标一个字符 k 光标上移一行 j 光标下移一行 ^ 光标移动至行首 0 数字"0",光标移至文章的开头 G 光标移至文章的最后 $ 光标移动至行...

    c程序设计习题参考(谭浩强三版)习题参考解答

    写一个函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。 76 10.6输入一行文字,找出其中大写字母,小写字母,空格,数字及其他字符各有多少。 77 10.7写一个函数,将一个3×3的矩阵转置。 77 9.8...

    数据库应用设计.doc

    13、在将ER模型转换成关系模型时,若实体间的联系是1 :1的,则可以在两个实体转换成的两个关系模式中任意一个中加入另一个的(键)和联 系类型的属性。 14、对数据库经常性的维护工作主要由( DBA )完成。 15、...

    ep_citation:能够将引文(内容)从另一个窗口拖放到Etherpad中

    当从另一个窗口或父窗口放入contentEditable时,会发生奇怪的行为。 代替使用实际的插入符号位置更新代表,在屏幕上绘制了一个假的插入符号。 这意味着Etherpad无法获得放置事件的正确插入符号位置。我们如何解决这...

    VLOOKUP简介及应用.pdf

    VLOOKUP,作为Excel中的一个...在Excel表格中,我们经常需要查找某个值,并返回与之相关联的另一个值。VLOOKUP函数就为我们提供了这样一个强大的工具,它能够在数据表的第一列中查找特定的值,并返回该行中指定列的值。

    从零开始学iOS7开发系列教程-事务管理软件开发实战-Chapter81

    1.我们可以返回和参数相同的index-path,这就意味着该行可以被选中 2.我们可以返回另一个index-path,假如我们希望选中另一行 3.我们可以返回

Global site tag (gtag.js) - Google Analytics