当前位置: 代码迷 >> .NET面试 >> Datatable 之间的复制,该如何处理
  详细解决方案

Datatable 之间的复制,该如何处理

热度:44   发布时间:2016-05-02 01:17:26.0
Datatable 之间的复制
 // strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePath + ";Extended Properties=Excel 8.0;";
              OleDbConnection conn = new OleDbConnection(strConn);
              OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);
              DataSet dataSet = new DataSet();
             * DataTable dt = new DataTable();
             * DataTable myDt = new DataTable();
               try
              {
                 // myCommand.Fill(dataSet);
                 // dt = dataSet.Tables[0];
                  DataRow dr = dt.Rows[0];
                  for (int i = 0; i < dt.Columns.Count; i++)
                  {
                      myDt.Columns.Add(dr[i].ToString());
                  }
                  for (int i = 1; i < dt.Rows.Count; i++)
                  {
                      DataRow mydr = myDt.NewRow();
                      mydr = dt.Rows[i];
                      myDt.Rows.Add(mydr.ItemArray);
                  }
              }
------解决思路----------------------

  DataTable dt = new DataTable();
 DataTable dt1=  dt.Copy();

------解决思路----------------------
引用:
 // strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePath + ";Extended Properties=Excel 8.0;";
              OleDbConnection conn = new OleDbConnection(strConn);
              OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);
              DataSet dataSet = new DataSet();
             * DataTable dt = new DataTable();
             * DataTable myDt = new DataTable();
               try
              {
                 // myCommand.Fill(dataSet);
                 // dt = dataSet.Tables[0];
                  DataRow dr = dt.Rows[0];
                  for (int i = 0; i < dt.Columns.Count; i++)
                  {
                      myDt.Columns.Add(dr[i].ToString());
                  }
                  for (int i = 1; i < dt.Rows.Count; i++)
                  {
                      DataRow mydr = myDt.NewRow();
                      mydr = dt.Rows[i];
                      myDt.Rows.Add(mydr.ItemArray);
                  }
              }

问题呢?
framework对DataTable复制、克隆都有方法,不知道你要什么DataTable复制?
------解决思路----------------------
1:复制结构(即datatable的columns),用datatable.clone();
2:复制结构和数据,用datatable.Copy();(1楼已经给出)
------解决思路----------------------
自己写一遍也不错,算是加深了印象。
  相关解决方案