gpt4 book ai didi

c# - 更新查询中 'Unchanged' 的 SQLParameter

转载 作者:太空宇宙 更新时间:2023-11-03 22:48:25 24 4
gpt4 key购买 nike

是否可以向更新查询添加“未更改”参数。

在一些旧代码中我有类似的东西:

string query = @"Update Table SET Field1=@var1, Field2=@var2, Field3=@var3 etc..."
command.Parameters.AddWithValue("@var1", var1);
command.Parameters.AddWithValue("@var2", var2);
command.Parameters.AddWithValue("@var3", var3);

现在发生了一些变化,使输入中的 Field2 变成了 var2。如果用户没有提供 var2 Field2 应该保持不变。

有没有办法实现这样的事情

command.Parameters.AddWithValue("@var2", var2 ?? UNCHANGED);

或者如果没有提供 var2,唯一不添加 SET Field2 的选项是什么?

最佳答案

将您的参数设置为可为空,并使用 ISNULL。作为一个非常简单的例子:

CREATE PROC UpdateProc @ID int, @Column1 varchar(10) = NULL, @Column2 varchar(10) = NULL AS

UPDATE YourTable
SET Column1 = ISNULL(@Column1, Column1),
Column2 = ISNULL(@Column2, Column2)
WHERE ID = @ID;
GO

EXEC UpdateProc @ID = 1, @Column1 = 'Test';
--OR
EXEC UpdateProc @ID = 2, @Column1 = NULL, @Column2 = 'Test';

关于c# - 更新查询中 'Unchanged' 的 SQLParameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48790060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com