我怎么知道列名?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我怎么知道列名?相关的知识,希望对你有一定的参考价值。
我有下面的代码,我被要求在foreach部分使用列名而不是索引。我的问题是,是否可以从下面的代码中了解dtGDIrow表列的名称?谢谢!
private string UploadSummaryDatatoSQLTable(List<FinGrowthIndexSummary> lstGISum, string sqlTableName) {
int _GDI_SUMMARY_COLS = 16;
DataTable dtGDIrow = new DataTable();
DataColumn idcol = new DataColumn();
idcol.AllowDBNull = true;
dtGDIrow.Columns.Add(idcol);
DataColumn dateCol = new DataColumn();
idcol.AllowDBNull = true;
dtGDIrow.Columns.Add(dateCol);
for (int i = 0; i < _GDI_SUMMARY_COLS; i++) {
// GDI type
DataColumn gdifield = new DataColumn();
idcol.AllowDBNull = true;
dtGDIrow.Columns.Add(gdifield);
}
foreach (var selcol in lstGISum) {
DataRow row = dtGDIrow.NewRow();
row[0] = 1;
row[1] = selcol.SummaryDate;
row[2] = selcol.Description;
....
row[16] = selcol.CommodityExcess;
row[17] = selcol.Overall;
dtGDIrow.Rows.Add(row);
}
}
答案
由于您正在创建dtGDIrow数据表,因此您应该在执行时指定列名,例如:
DataColumn idcol = new DataColumn("idCol");
DataColumn dateCol = new DataColumn("dateCol");
当你在它的时候,你也可以为它们分配一个合适的数据类型,所以并非所有列都默认为String:
DataColumn idcol = new DataColumn("idCol", System.Type.GetType("System.Int32"));
DataColumn dateCol = new DataColumn("dateCol", System.Type.GetType("System.DateTime"));
当您使用这些列时,请按名称引用它们:
row["idCol"] = 1;
row["dateCol"] = selcol.SummaryDate;
在foreach部分,您必须自己提供一些命名逻辑。
以上是关于我怎么知道列名?的主要内容,如果未能解决你的问题,请参考以下文章