у меня это C# код:«Существует уже открытая DataReader, связанные с этим соединением» ошибка
using (SqlConnection db = Database.Connection)
{
db.Open();
string selectString = "SELECT id, numwave, CAST(kol_fakt AS int) AS kol_fakt FROM sorters WHERE [email protected] AND [email protected] AND [email protected]";
try
{
SqlCommand command = new SqlCommand(selectString, db);
command.Parameters.AddWithValue("@numDoc", numDoc);
command.Parameters.AddWithValue("@kodProd", kodProd);
command.Parameters.AddWithValue("@numPal", numPal);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read() && reduseLeft > 0)
{
FUid = "";
FUnumwave = "";
FUkolfakt = 0;
FUid = reader["id"].ToString();
FUnumwave = reader["numwave"].ToString();
FUkolfakt = (int)reader["kol_fakt"];
if (FUkolfakt >= reduseLeft)
{
string updateString = "UPDATE sorters SET [email protected] WHERE [email protected] AND id=[email protected]";
try
{
SqlCommand upCommand = new SqlCommand(updateString, db);
upCommand.Parameters.AddWithValue("kol_fakt", (FUkolfakt - reduseLeft).ToString());
upCommand.ExecuteNonQuery();//HERE ERROR
reduseLeft = 0;
}
catch (Exception ex)
{
}
}
}
}
catch (Exception ex)
{
}
db.Close();
}
Я получил сообщение об ошибке:
Там уже находится открытая DataReader, связанные с этим Соединение или команда, которые должны быть закрыты первыми.
Мне нужно создать SqlCommand
в SqlCommand
, как я могу это сделать?
Благодарим за помощь) – Roman