As explained here
http://msdn.microsoft.com/en-us/library/haa3afyz(v=vs.90).aspx[
^],
"You use the Read method of the DataReader object to obtain a row from the results of the query. You can access each column of the returned row by passing the name or ordinal reference of the column to the DataReader. However, for best performance, the DataReader provides a series of methods that allow you to access column values in their native data types (GetDateTime, GetDouble, GetGuid, GetInt32, and so on). For a list of typed accessor methods for data provider-specific DataReaders, see OleDbDataReader and SqlDataReader. Using the typed accessor methods, assuming the underlying data type is known, reduces the amount of type conversion required when retrieving the column value."
One possibility could be that the
Row
returned by the
Reader
may be having only
one column.
Please but a bread point at
Label6.Text and check the contents of the reader
to see whether it has required number of columns. Otherwise, please check the
cmd4
for ensuring to return the required number of columns. Further instead of using
Convert.ToString
the
GetString
method explained here
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getstring(v=vs.90)[
^] can be used as suggested in the above reference.