SqlDataReader , который ExecuteReader
возвращает, является серверным курсором, это означает, что соединение будет использоваться исключительно читателем, пока вы его не закроете. Таким образом, вы не сможете выполнить любую другую команду, используя то же соединение.
Что бы я сделал, сохранив в списке то, что вы должны сделать (эти вставки), и после того, как считыватель закроется, выполните все операции, которые вам нужно выполнить.
Вы можете использовать блок using
, чтобы считыватель был закрыт и утилизирован. После этого вы можете повторно использовать то же соединение.
using (var nomeItemRdr = cmd.ExecuteReader())
{
}
//You can reuse your connection here.