首页 > 解决方案 > 使用 Web 服务方法从 SQL Server Pivot 检索数据

问题描述

我有一个与Sql Server 中的 Columns to Rows 相关的输出,其中包含多个数据

EmployeeID    01/01/2018         |  01/02/2018         |  01/03/2018
00001         07:00 AM - 05:00PM |  07:00 AM - 05:00PM |  07:00 AM - 05:00PM
00002         07:00 AM - 05:00PM |  07:00 AM - 05:00PM |  07:00 AM - 05:00PM

问题是如何在 Web 服务中调用字段名称这是我的代码

            SqlDataReader rdr = cmd.ExecuteReader();
            while (rdr.Read())
            {
                my_cs var = new my_cs ();
                var.DTRDate = rdr["01/01/2018"].ToString();
                var.DTRDate = rdr["01/02/2018"].ToString();
                var.DTRDate = rdr["01/03/2018"].ToString();
                mylist.Add(var);
            }
            con.Close();

它说:

System.IndexOutOfRangeException:System.Data.SqlClient.SqlDataReader.GetOrdinal(String name) 的 System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName) 的 System.Data.SqlClient.SqlDataReader.get_Item(字符串名称)

需要帮忙..

标签: sql-server

解决方案


不确定您有什么错误,我假设这些字段具有您期望的不同名称。

您可以调试 rdr 以检查字段名称是什么或检查以下问题:

您可以从 SqlDataReader 获取列名吗?

但是您始终可以按索引访问字段

 while (rdr.Read())
        {
            my_cs var = new my_cs ();
            var.DTRDate1 = rdr[0].ToString();
            var.DTRDate2 = rdr[1].ToString();
            var.DTRDate3 = rdr[2].ToString();
            mylist.Add(var);
        }

推荐阅读