+++ 本例演示如何使用DataTable. Copy方法和DataTable.Clone()方法:
protected void Page_Load(object sender, EventArgs e)
{
string connStr = "data source=ora11g; uid=scott; pwd=tiger; unicode=true";
string sqlStr = "SELECT * FROM EMP";
OracleDataAdapter da = new OracleDataAdapter(sqlStr, connStr);
DataTable dt = new DataTable();
da.Fill(dt);
#region 克隆 只复制表结构
DataTable cloneTable;
cloneTable = dt.Clone();
Response.Write("克隆后的DataTable的相关信息:");
Response.Write("克隆后的DataTable的行数:" + cloneTable.Rows.Count);
Response.Write("克隆后的DataTable的表名:" + cloneTable.TableName );
Response.Write("克隆后的DataTable的各列:");
for (int i = 0; i < cloneTable.Columns.Count; i++)
{
Response.Write(cloneTable.Columns[i].ColumnName + " ");
}
Response.Write("克隆后的DataTable的各行:");
foreach (DataRow dr in cloneTable.Rows)
{
Response.Write(dr["EMPNO"].ToString() + ", " + dr["ENAME"].ToString());
}
#endregion
#region 复制 表结构和内容行都复制
DataTable copyDataTable;
copyDataTable = dt.Copy();
Response.Write("复制后的DataTable的相关信息:");
Response.Write("复制后的DataTable的行数:" + copyDataTable.Rows.Count);
Response.Write("复制后的DataTable的表名:" + copyDataTable.TableName );
Response.Write("复制后的DataTable的各列:" + copyDataTable.TableName );
for (int i = 0; i < copyDataTable.Columns.Count; i++)
{
Response.Write(copyDataTable.Columns[i].ColumnName + " ");
}
Response.Write("复制后的DataTable的各行:");
foreach (DataRow dr in copyDataTable.Rows)
{
Response.Write(dr["EMPNO"].ToString() + ", " + dr["ENAME"].ToString() );
}
#endregion
}
+++ 说明
1) 本例演示了DataTable的Clone和Copy方法。
2) 它们的区别是Copy和Clone方法都创建与原来DataTable对象相同的表结构,但Copy方法还创建与原始表相同的DataRows集(数据行),而Clone方法创建的新DataTable不包含任何DataRows;
3) 也就是说,Clone方法只创建与原来DataTable对象相同的表结构,而Copy方法除了表结构还有数据。
ADO.NET_第五篇_DataTable_03Copy/Clone
最新推荐文章于 2024-01-19 14:30:00 发布