如何将新列添加到新表? [英] How to add new columns to the new table?
问题描述
< 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屋!