Произошло необработанное исключение типа «System.InvalidOperationException» в System.Data.dll? - PullRequest
0 голосов
/ 04 ноября 2018

Я получаю сообщение об ошибке и не знаю почему!

using(SqlConnection sqlcon = new SqlConnection(con)) 
{
    sqlcon.Open();

    SqlCommand cmd = new SqlCommand("dbo.workScheduleDataGrid", sqlcon);
    cmd = sqlcon.CreateCommand();
    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Parameters.AddWithValue("@worker_id", ids[i].worker_id);
    cmd.Parameters.AddWithValue("@day", days[j]);

    SqlDataReader reader = cmd.ExecuteReader();

    if (reader.HasRows) 
    {
        while (reader.Read()) 
        {
            MessageBox.Show("full name is: " + reader.GetInt32(1) + " and field of work is: " + reader.GetString(2) + " in day " + days[j]);
        }
    }
    else 
    {
        MessageBox.Show("No data");
    }

    reader.Close();
}

В чем здесь ошибка, зная, что я использовал хранимую процедуру таким же образом, без ошибок!

1 Ответ

0 голосов
/ 04 ноября 2018

Вы должны либо использовать этот метод:

SqlCommand cmd = new SqlCommand("dbo.workScheduleDataGrid", sqlcon);

или этот метод

SqlCommand cmd = sqlcon.CreateCommand();

для создания команды, но не для обеих (второе назначение в вашем коде перезаписывает первое).

Со вторыми опциями вам нужно указать команду для отдельного выполнения:

cmd.CommandText = "dbo.workScheduleDataGrid";

Кроме того, не забудьте избавиться от объекта cmd, лучше всего с другим оператором using.

...