Procédure stockée Ne fonctionne pas à partir du code c #

J'essaye d'appeler une procédure stockée dans C #.

using (SqlConnection connection = new SqlConnection(connectionSsortingng)) using (SqlCommand command = connection.CreateCommand()) { command.CommandType = CommandType.StoredProcedure; command.CommandText = "updateData"; command.Parameters.Add(new SqlParameter("@inrego", rego)); command.Parameters.Add(new SqlParameter("@inOprt", oprt)); command.Parameters.Add(new SqlParameter("@inService", service)); connection.Open(); int update = command.ExecuteNonQuery(); Console.WriteLine(update); connection.Close(); } 

La mise à jour montre 1 sur la console, mais la database n'est toujours pas mise à jour.

C'est la procédure stockée

 CREATE PROCEDURE [dbo].updateData @inrego varchar(5), @inOprt char(3), @inService as varchar(50) AS delete from buses where rego = @inrego; insert into buses (rego, operator,service) values(@inrego, @inOprt, @inService); RETURN 0 

L'exécution de la procédure stockée fonctionne manuellement, alias

 USE [C:\USERS\---\DOCUMENTS\VISUAL STUDIO 2013\PROJECTS\---\TEST.DB.MDF] GO DECLARE @return_value Int EXEC @return_value = [dbo].[updateData] @inrego = N'1', @inOprt = N'2', @inService = N'3' SELECT @return_value as 'Return Value' GO 

fonctionne, et met à jour avec succès la database, mais le formulaire de code C # ne le fait pas.

J'ai été incapable de reproduire le problème sur une database locale propre (MS SQL EXPRESS 2013, Win 8.1, .NET 4.5):

 CREATE TABLE [dbo].buses ( [rego] varchar(5) NOT NULL PRIMARY KEY, [operator] char(3), [service] varchar(50) ) 
 static void UpdateOrInsertBuses(Ssortingng rego, Ssortingng oprt, Ssortingng service) { using (SqlConnection connection = new SqlConnection(connectionSsortingng)) { using (SqlCommand command = connection.CreateCommand()) { command.CommandType = CommandType.StoredProcedure; command.CommandText = "updateData"; command.Parameters.Add(new SqlParameter("@inrego", rego)); command.Parameters.Add(new SqlParameter("@inOprt", oprt)); command.Parameters.Add(new SqlParameter("@inService", service)); connection.Open(); try { int update = command.ExecuteNonQuery(); Console.WriteLine(update); } catch (Exception exc) { Console.WriteLine(exc.Message); } finally { connection.Close(); } } } } // ... // Add data UpdateOrInsertBuses("11", "12", "13"); UpdateOrInsertBuses("21", "22", "23"); // Update added UpdateOrInsertBuses("21", "22", "Changed for sure"); 

Donc, c'est un problème qui ne se rapporte pas à votre code actuel. Comme l'a suggéré @ Gordon Linoff, il s'agit soit d'un problème d'autorisation, soit d'un triggersur qui s'immisce dans les mises à jour, ou de la database, pour certaines raisons, rétablit ou ignore les modifications.