您的位置:首页 > 运维架构

DataTable类Clone及Copy方法的区别

2015-09-24 16:35 375 查看
初学者可能不清楚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);

            }

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: