【发布时间】:2018-05-23 20:36:00
【问题描述】:
我有一个ArrayList,它由多列组成:
如何将每个值插入我的DataTable?
我的数据表如下所示:
ArrayList crmUpdate = new ArrayList();
DataTable insertDt = new DataTable();
insertDt.Columns.Add("Company", typeof(string));
insertDt.Columns.Add("Contractid", typeof(string));
insertDt.Columns.Add("ContractNumber", typeof(string));
insertDt.Columns.Add("InstAgreeNum", typeof(string));
insertDt.Columns.Add("ProductNumber", typeof(string));
insertDt.Columns.Add("StartDate", typeof(DateTime));
insertDt.Columns.Add("UpdatePrice", typeof(decimal));
我试过这样的:
foreach (object item in crmUpdate)
{
DataRow row = insertDt.NewRow();
row["Company"] = item;
insertDt.Rows.Add(row);
}
但例如我无法获得 item.Company。我需要知道如何从我的ArrayList 中引用Item.Company。希望有人可以进一步指导我。
谢谢!
更新
根据所有反馈 - 那我可以这样做吗?
// Calculate prices
List<CrmPartPrice> crmUpdate = new List<CrmPartPrice>();
foreach (CrmPartPrice item in crmUpdate)
{
DataRow row = insertDt.NewRow();
row["Company"] = item.Company;
row["Contractid"] = item.ContractId;
insertDt.Rows.Add(row);
}
【问题讨论】:
-
为什么还需要使用
ArrayList而不是List<CrmPartPrice>?没有理由再使用它了。 -
"我有一个 ArrayList..." 那么你的问题就在那里!除非您正在处理一些支持 .net 1.1 的遗留代码,否则无需再次使用 ArrayList。
-
因为我是 C# 新手。有区别吗?获得我的价值观会更容易吗?
-
@ZoharPeled 我只是想写一些很久以前由一个人制作的遗留代码。它工作正常,我只需要在最后做点别的。
-
@plaidDK:不要等待客户反馈。现在改变它。就像:
var crmUpdate=new List<CrmPartPrice>()一样简单。您还应该将参数类型更改为List<CrmPartPrice>。