如何将新列添加到新表? [英] How to add new columns to the new table?

查看:83
本文介绍了如何将新列添加到新表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

< pre>下午好!帮助,我找不到解决方案。我将描述问题:
 应用程序从Excel文件中读取数据和dt表。
 接下来,我需要用我需要的列提取数据,因为我来自dt表,得到我需要的列,



 例如0:



DataTable dt = new DataTable();



    var firstArray = dt.Rows.Cast< datarow> ()。选择(x => x.ItemArray [0]);

   var firstArray2 = dt.Rows.Cast< datarow> ()。选择(x => x.ItemArray [2]);

   var firstArray5 = dt.Rows.Cast< datarow> ()。选择(x => x.ItemArray [5]);

   var firstArray9 = dt.Rows.Cast< datarow> ()。选择(x => x.ItemArray [9]);



  接下来,创建一个新表格

  &NBSP;&NBSP;数据表DT2 =新数据表();

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;的DataColumn idColumn =新的DataColumn( Id,Type.GetType(System.Int32));



          &NBSP;&NBSP;&NBSP; DataColumn的名称列=新的DataColumn( 名称,Type.GetType( System.String)));

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; dt2.Columns.Add(idColumn );

             dt2.Columns.Add(nameColumn);



             DataRow row = dt2.NewRow();



问题。如何在新表中添加新列?

提前感谢您的合作





我尝试过:



我试图在互联网上找到解决方案,但遗憾的是我没有找到任何东西。

解决方案

尝试这样的事情:

 DataColumn [] columnsToCopy = 
{
dt.Columns [ 0 ],
dt.Columns [ 2 ],
dt.Columns [ 5 ],
dt.Columns [ 9 ],
};

DataTable dt2 = new DataTable();

dt2.BeginInit();
foreach (DataColumn col in columnsToCopy)
{
dt2。 Columns.Add(col.ColumnName,col.DataType);
}
dt2.EndInit();

dt2.BeginLoadData();
foreach (DataRow row in dt.Rows)
{
object [] values = columnsToCopy.Select(col = > row [col])。ToArray() ;
dt2.Rows.Add(values);
}
dt2.EndLoadData();


变种firstArray = dt.Rows.Cast<&的DataRow GT; ()。选择(x => x.ItemArray [0])。ToArray(); 
var firstArray2 = dt.Rows.Cast< DataRow>()。选择(x => x.ItemArray [2])。ToArray();
var firstArray5 = dt.Rows.Cast< DataRow>()。选择(x => x.ItemArray [5])。ToArray();
var firstArray9 = dt.Rows.Cast< DataRow>()。选择(x => x.ItemArray [9])。ToArray();





 DataTable dt2 = new DataTable(); 
DataColumn idColumn = new DataColumn(Id,Type.GetType(System.Int32));
idColumn.Unique = true;
idColumn.AllowDBNull = false;
idColumn.AutoIncrement = true;
idColumn.AutoIncrementSeed = 1;
idColumn.AutoIncrementStep = 1;

DataColumn nameColumn = new DataColumn(Name,Type.GetType(System.String));


dt2.Columns.Add(idColumn);
dt2.Columns.Add(nameColumn);



for(int i = 0; i< firstArray.Length; i ++)
{
DataRow row = dt2.NewRow();
row.ItemArray = new object [] {i,firstArray [i]};
dt2.Rows.Add(row);
}


<pre>Good afternoon! Help, I can not find a solution. I will describe the problem:
 The application reads the data and the dt table from the Excel file.
 Next, I need to pull out the data with the columns I need, for this I'm from the dt table, get the columns I need,


 For example 0:

DataTable dt = new DataTable ();

  var firstArray = dt.Rows.Cast <datarow> (). Select (x => x.ItemArray [0]);
  var firstArray2 = dt.Rows.Cast <datarow> (). Select (x => x.ItemArray [2]);
  var firstArray5 = dt.Rows.Cast <datarow> (). Select (x => x.ItemArray [5]);
  var firstArray9 = dt.Rows.Cast <datarow> (). Select (x => x.ItemArray [9]);

  Next, create a new table
   DataTable dt2 = new DataTable ();
            DataColumn idColumn = new DataColumn ("Id", Type.GetType ("System.Int32"));

            DataColumn nameColumn = new DataColumn ("Name", Type.GetType ("System.String")));
            
            dt2.Columns.Add (idColumn);
            dt2.Columns.Add (nameColumn);

            DataRow row = dt2.NewRow ();

Question. How to add new columns to the new table?

Thank you in advance for your cooperation 



What I have tried:

I tried to find a solution on the Internet, but unfortunately I did not find anything.

解决方案

Try something like this:

DataColumn[] columnsToCopy =
{
    dt.Columns[0],
    dt.Columns[2],
    dt.Columns[5],
    dt.Columns[9],
};

DataTable dt2 = new DataTable();

dt2.BeginInit();
foreach (DataColumn col in columnsToCopy)
{
    dt2.Columns.Add(col.ColumnName, col.DataType);
}
dt2.EndInit();

dt2.BeginLoadData();
foreach (DataRow row in dt.Rows)
{
    object[] values = columnsToCopy.Select(col => row[col]).ToArray();
    dt2.Rows.Add(values);
}
dt2.EndLoadData();


var firstArray = dt.Rows.Cast<DataRow>().Select(x => x.ItemArray[0]).ToArray();
            var firstArray2 = dt.Rows.Cast<DataRow>().Select(x => x.ItemArray[2]).ToArray();
            var firstArray5 = dt.Rows.Cast<DataRow>().Select(x => x.ItemArray[5]).ToArray();
            var firstArray9 = dt.Rows.Cast<DataRow>().Select(x => x.ItemArray[9]).ToArray();



DataTable dt2 = new DataTable();
            DataColumn idColumn = new DataColumn("Id", Type.GetType("System.Int32"));
            idColumn.Unique = true; 
            idColumn.AllowDBNull = false; 
            idColumn.AutoIncrement = true; 
            idColumn.AutoIncrementSeed = 1; 
            idColumn.AutoIncrementStep = 1; 

            DataColumn nameColumn = new DataColumn("Name", Type.GetType("System.String"));

           
            dt2.Columns.Add(idColumn);
            dt2.Columns.Add(nameColumn);

                                              

            for (int i = 0; i < firstArray.Length; i++)
            {
                DataRow row = dt2.NewRow();                
                row.ItemArray = new object[] { i, firstArray[i]};
                dt2.Rows.Add(row);
            }


这篇关于如何将新列添加到新表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆