DataTable类Clone方法与Copy方法的区别分析_实用技巧

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);
            }
        }
    }

时间: 2024-12-28 23:32:09

DataTable类Clone方法与Copy方法的区别分析_实用技巧的相关文章

asp.net 产生唯一随机码的方法分析_实用技巧

1. 自己写代码产生随机的数字和字母组合,每产生1个去数据库查询该随机码是否已存在,如果已存在,则重新产生,直到不重复为止. 优点:没发现有啥优点. 缺点:产生速度慢,还要查询数据库,当数据量大的时候,可能重复的机率会比较高,要查询多次数据库. 2. guid,该方法应该是用的比较多的. 优点:使用简单方便,不用自己编写额外的代码 缺点:占用数据库空间相对较大,特别是根据guid查询速度比较慢(毕竟是字符串). 3. 主键+随机码的方式,我们产生的随机码保存到数据库肯定会有个主键,用该主键+随机

Datatable删除行的Delete和Remove方法的区别介绍_实用技巧

1.在C#中,如果要删除DataTable中的某一行,大约有以下几种办法: •使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(index):可以直接删除行•datatable.Rows[i].Delete().Delete()之后需要datatable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态标志为删除,还可以通过datatable.RejectChanges()回滚,使该行取消

ASP.NET方法如何重载需要必备哪些条件_实用技巧

决定方法是否构成重载有以下几个条件: ◆ 在同一个类中: ◆ 方法名相同: ◆ 参数列表不同. 在设计重载方法的时候应该注意一下事项 1 避免随意更改重载中的参数名称.如果某个重载的一个参数与另一个重载的一个参数表示相同的输入,则这两个参数应具有同样的名称. 例如,不要执行下面的操作: 复制代码 代码如下: public void Write(string message, FileStream stream){} public void Write(string line, FileStrea

asp.net Server.MapPath方法注意事项第1/2页_实用技巧

在做一个客户推广系统的时候,里面有一个模板管理模块,需要管理员添加模板,包括模板的名称.说明和缩略图等,在这里上传图片的功能,我采用了比较传统的方法,进行上传,测试没有问题.但当我发布之后,对存储图片的文件夹创建了虚拟目录,并赋予该目录写入的权限,但是,当我上传图片的时候,总是失败.以前没遇到过这种情况,觉得很是怪异,所以想尽办法去解决. 首先,检查上传目录的权限,我添加了NetWork Service用户的写入.修改权限,结果还是失败,然后我将权限设置为EveryOne还是失败,看来不是权限的

asp.net 中静态方法和动态方法调用的区别实例分析_实用技巧

复制代码 代码如下: //定义静态方法class SQLHelper       {        public static string aaa()        {            return "你好"               }    } 调用:SQLHelper.aaa(); // 类名.方法名 //定义动态方法class SQLHelper       {        public string aaa()        {            return

前台JS(jquery ajax)调用后台方法实现无刷新级联菜单示例_实用技巧

前台用AJAX直接调用后台方法,老有人发帖提问,没事做个示例 CasMenu.aspx页面: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CasMenu.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr

Asp.net &amp;quot;对路径的访问被拒绝&amp;quot; 解决方法的分析_实用技巧

给下面这个目录加上ASP.NET帐号的权限.C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files ASP.NET帐号的权限为: 读取和运行,列出文件夹目录,读取,写入. 前几天把自己写的东西移植到另一台机器上的时候,出了这个问题.很直觉地想到了是权限问题.可是我把WEB目录下的权限都几乎改成了完全控制,还是不能解决问题.查了很多资料,讲得也不清楚.有说改这个,也有说改那个的.后来,终于注意到,出错时显示的是对

asp.ent(C#)中判断空字符串的3种方法以及性能分析_实用技巧

3种方法分别是: string a=""; 1.if(a=="") 2.if(a==String.Empty) 3.if(a.Length==0) 3种方法都是等效的,那么究竟那一种方法性能最高呢?本人用实验说明问题. 建立3个aspx页面(为什么用网页,主要是利用Microsoft Application Center Test ) WebForm1.aspx 复制代码 代码如下: private void Page_Load(object sender, Sys

ASP.NET读取XML文件4种方法分析_实用技巧

方法一 :使用XML控件 代码 复制代码 代码如下: <% @ Page Language="C#"%> <html> <body> <h3><font face="Verdana">读取XML方法一</font></h3> <from runat=server> <asp:Xml id="xml1" DocumentSource="g