返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#中DataSet、DataTable、DataRow数据的复制方法
  • 367
分享到

C#中DataSet、DataTable、DataRow数据的复制方法

2024-04-02 19:04:59 367人浏览 安东尼
摘要

DataSet 对象是支持 ADO.net的断开式、分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个DataTable的数据或者复制另一个Dat

DataSet 对象是支持 ADO.net的断开式、分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个DataTable的数据或者复制另一个DataTabe中的数据或者是DataRow的数据,但是只有DataSet和DataTable的复制是支持深层复制的,就是说不仅能复制元素的结构,而且能复制元素的数据,而DatatDataRow没有相关的复制的方法,下面将简单介绍下这些数据元素的复制问题。

DataTable sourceTable;
DataTable objectTable;
DatatDataRow sourceRow;
DatatDataRow objectRow;
DataRow tempRow;
DataSet souceDataSet = new DataSet();

复制DataSet

  DataSet object = souceDataSet.Copy();//深复制
  DataSet object = souceDataSet.Clone();//浅复制,只复制架构

复制DataTable

  objectTable  = sourceTable .Copy();//深复制
  objectTable  = sourceTable .Clone();//浅复制,只复制架构

复制DataRow

那我们应该如何复制DataRow的数据了,下面将着重介绍几种方法

1、ImportDataRow方法:

public void ImportDataRow( DataRow DataRow);

objectTable = sourceTable.clone();//必须先复制表的架构,使具有相同的的列或关系!
foreach (DataRow oRow in sourceTable)
{
    objectTable.ImportDataRow(oRow);//在objectTable中添加一个新行,并将sourceRow的值复制进去,要求表的结构一样!
}

2、自定义复制

objectTable.Columns.Add ("id");//不需要有一样的架构,只复制自己需要的列!
Object [] myArry = new Object [1];
foreach (DataRow oRow in sourceTable)
{
    tempRow = objectTable.NewRow();//此方法必须调用!
    myArry[0] = oRow["id"];//如果myArry中没有源表中的id列的话就会报错!
    tempRow.ItemArray = myArry;//ItemArray属性为Object类型数组,根据程序的需要需要可自行复制多个列的数据!
    objectTable.Rows.Add(tempRow); //此方法必须调用,否则DataRow中的数据将不能显示!
}

3、LoadDataRow方法:

public DataRow LoadDataRow(Object[] values,bool fAcceptChanges);

Object[] newRow = new Object[3];
// 设置对象数组的值
newRow[0] = "Hello";
newRow[1] = "World";
newRow[2] = "two";
DataRow myRow;
ObjectTable.BeginLoadData();
// 将新行添加到表中
myRow = ObjectTable.LoadDataRow(newRow, true);//标志要设置为true,表示添加新行
ObjectTable.EndLoadData();

该方法比较复杂,如果只是简单的复制现有行的数据来添加新行的话建议不要采用,具体用法请参看sdk文挡。

DataRow的复制

如果直接通过RequirDT.Rows.Add(row),则运行时会出现"该行已经属于一个表"的提示错误!至于其中的原因,通过DataSet和DataTable类比,从通常意义来说应该不会出现错误提示,但是细细想来,我觉得应该是由于DataTable的架构设计所致,借鉴关系数据库中的关系表,datacolumn定义了DataTable的整体架构,而具体的datarow是符合该架构的一条记录罢了!所以具有该架构的行只能添加到具有相同架构的表中!同时RequireDT.Rows.Add()实现捕获 System.ArgumentException(The row ther belongs to another table or ready belongs to this table.)我想其实现也限制了不能通过该方法实现!

鉴于以上

1.ImportRow方法

DataTable RequireDT = SourceDT.Clone();
RequireDT.ImportRow(row);

2.见网上有这样实现的

RequireDT.Rows.Add(row.ItemArray)

但是我编写代码并不能实现,该函数的功能是Creates a row using specified values and adds it to the System.Data.DataRowCollection。所以也需要先拷贝源数据表的结构,方可成功!

3. 以下方法也可以实现,但是也得先复制表的结构

ObjectTable.BeginLoadData(); 
myRow = ObjectTable.LoadDataRow(newRow, true);
ObjectTable.EndLoadData();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C#中DataSet、DataTable、DataRow数据的复制方法

本文链接: https://lsjlt.com/news/154170.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C#中DataSet、DataTable、DataRow数据的复制方法
    DataSet 对象是支持 ADO.NET的断开式、分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个DataTable的数据或者复制另一个Dat...
    99+
    2024-04-02
  • C#中把DataTable、Dataset转Json数据
    什么是JSON JSON是JavaScript Object Notation的简称,中文含义为“JavaScript 对象表示法”,它是一种数据交换的文本格...
    99+
    2024-04-02
  • C#中怎么把DataTable、Dataset转Json数据
    今天小编给大家分享一下C#中怎么把DataTable、Dataset转Json数据的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-06-30
  • C#中DataSet,DataTable,DataView的区别与用法
    一、创建Dataset和DataTable DataSet ds = new DataSet();//DataSetName默认为"NewDataSet" DataTable tab...
    99+
    2024-04-02
  • 怎么在C#中去除DataTable中的重复数据
    本篇文章为大家展示了怎么在C#中去除DataTable中的重复数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。第一种:采用DataView.ToTable()方法DataView.ToTable ...
    99+
    2023-06-06
  • c#中DataTable转List的2种方法示例
    在项目中常常常使用到DataTable,假设DataTable使用得当,不仅能使程序简洁有用,并且可以提高性能,达到事半功倍的效果,List<T>类是ArrayList类...
    99+
    2024-04-02
  • C#高效比较两个DataTable数据差异化的方法实现
    假如有两个DataTable表格分别是dt1,dt2,dt2中有些数据跟dt1一样,现在想找出dt2的数据在dt1中不存在的数据集(换句话也可以说dt2删除已经存在于dt1中的数据)...
    99+
    2024-04-02
  • Mysql中复制数据库的两种方法
    方法一:使用mysqldump 创建新的数据库 create database new_db 同一个mysql服务器复制数据库方法 mysqldump old_db -u 账户 -p密码 | mys...
    99+
    2023-09-24
    数据库 mysql database
  • C#数组的复制方法有哪些
    本篇内容主要讲解“C#数组的复制方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#数组的复制方法有哪些”吧!C#数组复制方法有哪些呢?在实际开发的过程中,我们需要掌握学习的有哪些呢?这...
    99+
    2023-06-17
  • navicat复制SQL数据表的方法
    这篇文章给大家分享的是有关navicat复制SQL数据表的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。在我们的电脑里打开navicat软件,选择要复制的数据表,如下所示:点...
    99+
    2024-04-02
  • 关于C++中数据16进制输出的方法
    在我们进行串口编译时,往往要用到串口数据,串口数据多是16进制的0x16表示。在运算过程中,我们得到的数据往往是10进制,那么怎么将10进制的数据转换成16进制呢?我在网上...
    99+
    2023-03-09
    C++ 16进制输出 C++ 16进制
  • C#数据库编程中SqlDataAdapter与DataSet的区别是什么
    这篇文章主要介绍“C#数据库编程中SqlDataAdapter与DataSet的区别是什么”,在日常操作中,相信很多人在C#数据库编程中SqlDataAdapter与DataSet的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好...
    99+
    2023-06-18
  • C++中数据16进制输出的方法是什么
    这篇文章主要讲解了“C++中数据16进制输出的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++中数据16进制输出的方法是什么”吧!比如我们得到一个数据:double ...
    99+
    2023-07-05
  • C#根据excel数据绘制坐标图的方法
    本文实例为大家分享了C#根据excel数据绘制坐标图的具体代码,供大家参考,具体内容如下 效果如下图 界面 代码 using System; using System.Colle...
    99+
    2024-04-02
  • mongodb复制数据库的方法是什么
    MongoDB复制数据库的方法有两种:主从复制和副本集。1. 主从复制(Master-Slave Replication):主从复制...
    99+
    2023-09-12
    mongodb 数据库
  • mysql复制数据库的方法是什么
    MySQL复制数据库的方法有多种,以下是其中一种常用的方法: 使用mysqldump命令备份源数据库: mysqldump -u...
    99+
    2024-04-09
    mysql 数据库
  • sqlserver复制表数据的方法是什么
    在 SQL Server 中,可以使用以下方法来复制表数据: 使用INSERT INTO SELECT语句:可以从一个表中...
    99+
    2024-04-30
    sqlserver
  • DM7数据复制中数据库级复制的原理及用法是什么
    DM7数据复制中数据库级复制的原理及用法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。DM 的数据复制可以在表级,模式级和库级进行配置,...
    99+
    2024-04-02
  • C#递归方法复制文件夹的方法
    这篇文章主要介绍“C#递归方法复制文件夹的方法”,在日常操作中,相信很多人在C#递归方法复制文件夹的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#递归方法复制文件夹的方法”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
  • SqlServer同实例复制数据库方法
    方法1 sql 脚本 打开Miscrosoft sql server manager studio-新建查询 备份数据库 点击(此处)折叠或打开 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作