Tại sao mã này ném một ngoại lệ hoạt động không hợp lệ?InvalidOperationException Kết nối không được đóng. Trạng thái hiện tại của kết nối đang mở
private SqlCommand cmd; // initialized in the class constructor
public void End(string spSendEventNotificationEmail) {
try {
cmd.CommandText = spSendEventNotificationEmail;
cmd.Parameters.Clear();
cmd.Parameters.Add("@packetID", SqlDbType.Int).Value = _packetID;
cmd.Parameters.Add("@statusID", SqlDbType.Int).Value = _statusID;
cmd.Parameters.Add("@website", SqlDbType.NVarChar, 100).Value = Tools.NextStep;
cmd.Connection.Open();
cmd.ExecuteNonQuery();
} finally {
cmd.Connection.Close();
cmd.Parameters.Clear();
cmd.Dispose();
}
endCall = true;
}
Có lẽ bạn đã mở kết nối của bạn trước? – Zbigniew
Tôi nghĩ rằng gốc của vấn đề là trong trường hợp của SqlCommand khởi tạo tại constructor lớp. Có được var này trong tất cả các mã của bạn có thể dễ dàng bị lạm dụng và dẫn đến lỗi khó chịu trong các phần khác của mã của bạn – Steve
http://stackoverflow.com/a/9707060/4068 –