1

I had an output like this in relation to Columns to Rows in Sql Server with multiple data

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

The Question is how can i call the field name in Web Service Here is my code

            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();

It says:

System.IndexOutOfRangeException: "01/01/2018" at System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName) at System.Data.SqlClient.SqlDataReader.GetOrdinal(String name) at System.Data.SqlClient.SqlDataReader.get_Item(String name)

need help..

Genebert
  • 70
  • 11

1 Answers1

1

Not sure what you have the error, I assume the fields have a different name you are expecting.

You can debug rdr to check what are the field name or check this question:

Can you get the column names from a SqlDataReader?

But you can always access fields by index

 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);
        }
Juan Carlos Oropeza
  • 47,252
  • 12
  • 78
  • 118