我怎么知道列名?

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部分,您必须自己提供一些命名逻辑。

以上是关于我怎么知道列名?的主要内容,如果未能解决你的问题,请参考以下文章

在一个片段中检测Recyclerview的上下滑动,我怎么做?

选项卡片段内的卡片视图

SQLServer如何修改一列的列名呢?

SQLServer如何修改一列的列名呢?

手电筒片段 Android Studio

如何使用SOLRJ java客户端从SOLR获取列名(字段)?