Citat:
Som sagt min lösning är inte optimal för femöre, men det fungerar och det är mest för min egen skull så jag lär mig grunderna osv osv.
Har två lagrade procedurer, har inte lagt någon transaktionshantering med rollback än på dem.
Kod:
CREATE PROCEDURE [dbo].[AddRecipe] @paramRecipeName nvarchar(max), @paramRecipeDescription nvarchar(max), @paramRecipeTime decimal(18,0), @paramUserId int, @paramPicture image, @paramImagePath nvarchar(max) AS SET NOCOUNT ON INSERT INTO Recipe(RecipeName, [Description], RecipeTime, UserId, Picture, ImagePath) VALUES(@paramRecipeName, @paramRecipeDescription, @paramRecipeTime, @paramUserId, @paramPicture, @paramImagePath) SELECT SCOPE_IDENTITY()
Använder mig av ADO.NET och sparar ID för det senaste värdet i en variabel:
object ID = cmd.ExecuteScalar();
Itererar sedan genom alla andra records jag vill lägga till som är kopplat till detta ID och exekverar den andra proceduren:
Kod:
CREATE PROCEDURE [dbo].[AddRecipeIngredient] @paramAmount decimal(18,0), @paramDescription nvarchar(max), @paramOrder int, @paramRecipeId int, @paramIngredientId int, @paramMeasureId int AS INSERT INTO RecipeIngredient(Amount, [Description], [Order], RecipeId, IngredientId, MeasureId) VALUES (@paramAmount, @paramDescription, @paramOrder, @paramRecipeId, @paramIngredientId, @paramMeasureId) RETURN 0
Nu tänkte jag lägga till en rollback och testa och se så det fungerar

Så nu får jag säkert smäll på fingrarna av Mr.Proton men det får man ta för att lära sig här i livet