J'essaie d'exécuter une procédure stockée SQL Server à partir de mon code C #. Voici le code que j'utilise:
var sql = @"test"; try { var query = db.Database.SqlQuery(sql); return Ok(); } catch (Exception ex) { return BadRequest(ex.Message); }
Voici la procédure stockée:
CREATE PROCEDURE [dbo].[test] AS BEGIN BEGIN TRY BEGIN TRANSACTION; PRINT 'INSERT 1 START'; INSERT INTO Message (Text, TypeId) VALUES ('Message 5', 0); THROW 50002,'thrown',1; PRINT 'INSERT 2 START'; INSERT INTO Message (Text, TypeId) VALUES ('Message 6', 0); PRINT 'GOT HERE'; COMMIT TRANSACTION; RETURN; END TRY BEGIN CATCH ROLLBACK TRANSACTION; RETURN; END CATCH END
Je reçois un message qui dit:
Code de gravité Description Erreur de suppression de ligne de file projet CS0411 Les arguments de type pour la méthode 'Database.SqlQuery (string, parameters object [])' ne peuvent pas être déduits de l'utilisation. Essayez de spécifier explicitement les arguments de type. WebRole C: \ H \ server \ WebRole \ Contrôleurs \ API Web – Data \ MessageController.cs 28 Active
- Comment changer le text d'affichage dans la vue?
- Déplacer les valeurs des colonnes de la table SQL Server vers une autre colonne de la table
- Mettre à jour la cellule dans une database mais ne pas supprimer la valeur précédente
- tentative non valide d'appel lue lorsque le lecteur est fermé erreur
- Comment get l'ID AutoGenerated lors de l'utilisation de SaveChanges dans ASP.Net MVC. Ma méthode actuelle semble inefficace
Quelqu'un peut-il me dire ce que je fais mal ici. Aussi c'est juste un test pour moi mais j'aimerais pouvoir valider ou annuler la transaction. Y a-t-il quelque chose que je dois faire du côté C # pour rendre cela possible?
Essayez d'utiliser la méthode ExecuteSqlCommand
, comme ci-dessous:
db.Database.ExecuteSqlCommand("exec dbo.test");