Вы должны либо использовать этот метод:
SqlCommand cmd = new SqlCommand("dbo.workScheduleDataGrid", sqlcon);
или этот метод
SqlCommand cmd = sqlcon.CreateCommand();
для создания команды, но не для обеих (второе назначение в вашем коде перезаписывает первое).
Со вторыми опциями вам нужно указать команду для отдельного выполнения:
cmd.CommandText = "dbo.workScheduleDataGrid";
Кроме того, не забудьте избавиться от объекта cmd, лучше всего с другим оператором using.