Я схожу с ума от слежения, где возможно получить ошибку. Каждый раз, когда я нажимаю кнопку «Получить». Это дает мне ошибку исключения, которая говоритСостояние связи не было закрыто
Соединение не было закрыто. Текущее состояние подключения - .
Вот код позади
void GetReceiptNo(int ID)
{
con.Open();
SqlCommand cmd = new SqlCommand();
//cmd.Connection = con;
cmd.Connection.Open();
cmd.CommandText = "SELECT ReceiptNo FROM PurchaseOrder WHERE [email protected]";
cmd.Parameters.AddWithValue("@PONo", ID);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
txtReceiptNo.Text = dr["ReceiptNo"].ToString();
}
}
else
{
con.Close();
Response.Redirect("~/PurchaseOrder/MaterialsReceive.aspx");
}
if (cmd.Connection.State == ConnectionState.Open)
{
cmd.Connection.Close();
}
}
void UpdateInventory(string itemID, string quantity)
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "INSERT INTO Receiving VALUES (@ItemNo, @Quantity, @Timestamp); " +
"UPDATE RMInventory SET Available = Available + @Quantity WHERE [email protected]; " +
"UPDATE PODetails SET Status = 'Received' WHERE [email protected] AND Status='Process' " +
"UPDATE PurchaseOrder SET Status = 'Received' WHERE [email protected] AND Status='Processing' " +
"UPDATE PurchaseOrder SET [email protected] WHERE [email protected]";
cmd.Parameters.AddWithValue("@PONo", Request.QueryString["ID"].ToString());
cmd.Parameters.AddWithValue("@ItemNo", itemID);
cmd.Parameters.AddWithValue("@Quantity", quantity);
cmd.Parameters.AddWithValue("@Timestamp", DateTime.Now);
cmd.Parameters.AddWithValue("@DateReceived", DateTime.Now);
cmd.ExecuteNonQuery();
con.Close();
}
Ошибка появится на пустом UpdateInventory
con.Open()
- это ваше приложение, используя потоки в любом случае? Если это так, вам лучше было бы позволить каждому вызову построить собственное соединение или использовать блокировку или мьютекс, чтобы гарантировать, что два вызова не пытаются открыть/закрыть одно и то же соединение. –
cmd.Connection = con, почему эта строка прокомментирована, в настоящее время Я не вижу никакой связи между объектом Command и объектом Connection –