Как обновить SQL в ASP.Net? - PullRequest
0 голосов
/ 19 мая 2019

У меня есть UPDATE хранимая процедура SQL Server XemDiem_Upate.Теперь, если у меня есть только 1 параметр, такой как @month_1, как я могу обновить с помощью ASP.NET?

CREATE PROCEDURE XemDiem_Update
    (@month_1 NVARCHAR(MAX),
     @month_2 NVARCHAR(MAX),
     @month_3 NVARCHAR(MAX),
     @month_4 NVARCHAR(MAX),
     @month_5 NVARCHAR(MAX),
     @month_6 NVARCHAR(MAX),
     @month_7 NVARCHAR(MAX),
     @month_8 NVARCHAR(MAX),
     @month_9 NVARCHAR(MAX),
     @month_10 NVARCHAR(MAX),
     @month_11 NVARCHAR(MAX),
     @month_12 NVARCHAR(MAX),
     @user_id INT)
AS
BEGIN
    UPDATE XemDiem 
    SET month_1 = @month_1, month_2 = @month_2, 
        month_3 = @month_3, month_4 = @month_4, 
        month_5 = @month_5, month_6 = @month_6, 
        month_7 = @month_7, month_8 = @month_8, 
        month_9 = @month_9, month_10 = @month_10, 
        month_11 = @month_11, month_12 = @month_12 
    WHERE user_id = @user_id
END

1 Ответ

1 голос
/ 19 мая 2019

Сделайте ваш параметр необязательным:

@month_1 NVARCHAR(max) = NULL

Обновлять только когда параметр не указан

month_1 = CASE WHEN @month_1 IS NULL THEN month_1 ELSE @month_1 END

Вот пример реализации:

CREATE PROC XemDiem_Update(@month_1  NVARCHAR(max) = NULL, 
                           @month_2  NVARCHAR(max) = NULL, 
                           @month_3  NVARCHAR(max) = NULL, 
                           @month_4  NVARCHAR(max) = NULL, 
                           @month_5  NVARCHAR(max) = NULL, 
                           @month_6  NVARCHAR(max) = NULL, 
                           @month_7  NVARCHAR(max) = NULL, 
                           @month_8  NVARCHAR(max) = NULL, 
                           @month_9  NVARCHAR(max) = NULL, 
                           @month_10 NVARCHAR(max) = NULL, 
                           @month_11 NVARCHAR(max) = NULL, 
                           @month_12 NVARCHAR(max) = NULL, 
                           @user_id  INT) 
AS 
  BEGIN 
      UPDATE Xemdiem 
      SET    month_1 = CASE WHEN @month_1 IS NULL THEN month_1 ELSE @month_1 END, 
             month_2 = CASE WHEN @month_2 IS NULL THEN month_2 ELSE @month_2 END, 
             month_3 = CASE WHEN @month_3 IS NULL THEN month_3 ELSE @month_3 END, 
             month_4 = CASE WHEN @month_4 IS NULL THEN month_4 ELSE @month_4 END, 
             month_5 = CASE WHEN @month_5 IS NULL THEN month_5 ELSE @month_5 END, 
             month_6 = CASE WHEN @month_6 IS NULL THEN month_6 ELSE @month_6 END, 
             month_7 = CASE WHEN @month_7 IS NULL THEN month_7 ELSE @month_7 END, 
             month_8 = CASE WHEN @month_8 IS NULL THEN month_8 ELSE @month_8 END, 
             month_9 = CASE WHEN @month_9 IS NULL THEN month_9 ELSE @month_9 END, 
             month_10 = CASE WHEN @month_10 IS NULL THEN month_10 ELSE @month_10 END, 
             month_11 = CASE WHEN @month_11 IS NULL THEN month_11 ELSE @month_11 END, 
             month_12 = CASE WHEN @month_12 IS NULL THEN month_12 ELSE @month_12 END 
      WHERE  user_id = @user_id 
  END 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...