Chaque fois que j'utilise le débogueur, une de mes procédures stockées est exécutée, même lorsque j'arrête le débogueur avant d'atteindre la ligne de code chargée d'enregistrer les données dans la base de données.Empêcher l'exécution de la procédure stockée lors du débogage
Comment est-ce que je pourrais empêcher ceci de se produire? Je ne veux pas avoir de lignes incomplètes dans la base de données.
POrder po = new POrder();
po.PODate = DateTime.Parse(txtPODate.Text); <-- Breakpoint here
po.POVendorID = int.Parse(ddPOVendors.SelectedValue); <-- Stop Debugging here
Je ne touchais po.AddNewOrder
encore et j'arrête le débogueur, donc je ne suis pas l'exécution de la procédure stockée encore
po.AddNewOrder();
POrder
Classe:
public DateTime PODate { get; set; }
public int POVendorID { get; set; }
public void AddNewOrder()
{
SqlConnection con = new SqlConnection(ss.GetConectionString());
SqlCommand cmd = new SqlCommand("uspAddNewPOrder", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parPODate = new SqlParameter("@PODate", SqlDbType.Date);
parPODate.Value = PODate;
cmd.Parameters.Add(parPODate);
SqlParameter parPOVendorID = new SqlParameter("@POVendorID", SqlDbType.Int);
parPOVendorID.Value = POVendorID;
cmd.Parameters.Add(parPOVendorID);
try
{
con.Open();
cmd.ExecuteNonQuery();
}
catch (Exception exp)
{
throw new Exception(exp.Message.ToString());
}
finally
{
cmd.Dispose();
con.Close();
}
}
Code de procédure stockée:
ALTER PROCEDURE [dbo].[uspAddNewPOrder]
(
@PODate datetime = null,
@POVendorID int= null
)
AS
BEGIN
INSERT INTO PurchaseOrders.[dbo].[tblPurchaseOrders]
(
PODate,
POVendorID
)
VALUES
(
@PODate,
@POVendorID
)
END
Envelopper l'appel dans une transaction? –
Ce qui se passe probablement, c'est que vous laissez votre navigateur ouvert avec le 'serveur de développement ASP.NET ', et même si vous avez arrêté le débogage votre navigateur termine sa demande. –
@Bob Vale Merci, Comment je pouvais faire ça? – laspalmos