DataTable类Clone方法与Copy方法的区别分析

 更新时间:2013年03月03日 14:29:28   作者:  
初学者可能不清楚DataTable类的Clone及Copy方法的区别,查msdn,可得到如下结论

DataTable.Clone 方法:克隆 DataTable 的结构,包括所有 DataTable 架构和约束。

DataTable.Copy 方法:复制该 DataTable 的结构和数据。

我们可以编写如下的程序,进行验证:

复制代码 代码如下:

        static string connStr = "Server=.\\sqlexpress;Initial Catalog=hr;Integrated Security=True";

        static void Clone()
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                string sql = "select * from emp";
                SqlDataAdapter da = new SqlDataAdapter(sql, conn);
                DataTable dt = new DataTable();
                da.Fill(dt);
                DataTable dtClone = dt.Clone();
                Print(dtClone);
            }
        }

        private static void Print(DataTable dtClone)
        {
            foreach (DataColumn col in dtClone.Columns)
            {
                Console.Write(col.DataType+"\t");
            }
            Console.WriteLine();
            foreach (DataRow row in dtClone.Rows)
            {
                Console.Write(row[0] + "\t" + row[1] + "\t" + row[2] + "\n");
            }
            Console.WriteLine();
        }
        static void Main(string[] args)
        {
            Clone();//仅仅复制表结构
            Copy();//复制表结构及数据
            Console.ReadKey();
        }

        private static void Copy()
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                string sql = "select * from emp";
                SqlDataAdapter da = new SqlDataAdapter(sql, conn);
                DataTable dt = new DataTable();
                da.Fill(dt);
                DataTable dtCopy = dt.Copy();
                Print(dtCopy);
            }
        }
    }

相关文章

  • ASP.NET实现Web网站本地化

    ASP.NET实现Web网站本地化

    这篇文章介绍了ASP.NET实现Web网站本地化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • asp.net core多文件分块同时上传组件使用详解

    asp.net core多文件分块同时上传组件使用详解

    这篇文章主要为大家介绍了一个可多个文件同时上传、断点续传,并实时反馈上传进度的 Asp.Net core 组件,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • 子窗口给父窗口赋值实现思路及案例演示

    子窗口给父窗口赋值实现思路及案例演示

    今天学习一下javascript实现从父窗口打开一个子窗口,在子窗口处理一些结果之后,把结果赋值于父窗口的文本框内,接下来介绍实现方法,感兴趣的朋友可以了解下,希望本文对你有所帮助
    2013-01-01
  • DataSet.Tables[].Rows[][]的用法详细解析

    DataSet.Tables[].Rows[][]的用法详细解析

    以下是对DataSet.Tables[].Rows[][]的用法进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-09-09
  • 在vs2008中使用AJAX开发.net 2.0下的Web程序的方法

    在vs2008中使用AJAX开发.net 2.0下的Web程序的方法

    最近做项目需要用到AJAX,但是工作需要必须使用.net 2.0版本;但发现如果项目为.net2.0版本则没有Ajax(web.config已经配置上ajax) ,、工具栏中并不出现Ajax选项卡. 而且新建页面也没有AJAX页面;后来查了很多资料 发现了一种解决方法
    2011-06-06
  • .NET Windows 多线程thread编程

    .NET Windows 多线程thread编程

    .net里使用线程,用thread类,定义线程,启动,销毁,全部包括在这个类里,定义一个线程,必须指定这个线程的函数,也就是这个线程是做什么的
    2012-12-12
  • 在.NET6中使用配置Quartz.NET定时任务并使用IHostedService实现项目启动自动加载任务

    在.NET6中使用配置Quartz.NET定时任务并使用IHostedService实现项目启动自动加载任务

    Quartz.Net是一个强大、开源、轻量的作业调度框架,在平时的项目开发当中也会时不时的需要运用到定时调度方面的功能,这篇文章主要介绍了在.NET6中使用配置Quartz.NET定时任务并使用IHostedService实现项目启动自动加载任务,需要的朋友可以参考下
    2024-04-04
  • ASP.NET中日历控件和JS版日历控件的使用方法(第5节)

    ASP.NET中日历控件和JS版日历控件的使用方法(第5节)

    这篇文章主要为大家详细介绍了ASP.NET中日历控件和JS版日历控件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-08-08
  • 利用ASP.NET MVC+Bootstrap搭建个人博客之打造清新分页Helper(三)

    利用ASP.NET MVC+Bootstrap搭建个人博客之打造清新分页Helper(三)

    这篇文章主要介绍了利用ASP.NET MVC+Bootstrap搭建个人博客之打造清新分页Helper(三)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • asp.net Core3.0区域与路由配置的方法

    asp.net Core3.0区域与路由配置的方法

    这篇文章主要给大家介绍了关于asp.net Core3.0区域与路由配置的方法,文中通过示例代码介绍的非常详细,对大家学习或者使用asp.net Core3.0具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05

最新评论