发送字符串.对存储过程为空
本文关键字:存储过程 字符串 | 更新日期: 2023-09-27 18:03:20
考虑这个例子:
MyParameters.Name = "Paul";
MyParameters.Nickname = String.Empty;
ExecuteStoredProcedure(MyStoredProcedure, MyParameters);
当我的存储过程执行时,它将运行像这样的东西?
MyStoredProcedure 'Paul',''
那么,我的问题是:C# String.Empty
等于Database ''
?
p。:我使用SQL Server
是,空字符串作为空字符串发送。看,这些值被翻译并按预期发送。例如,如果您需要发送null
,那么您可以这样设置Nickname
:
MyParameters.Nickname = null;
你的代码也相当于:
MyParameters.Nickname = "";
String.Empty
在语义上与c#中的""
相同,这是一个零长度的非空字符串(是否完全相同更复杂,并且取决于您正在使用的运行时版本)。在SQL中,''
是一个零长度的非空字符串。因此,是的,string.Empty
, String.Empty
和""
在逻辑上都等同于''
。
如上所述,字符串。空的是相同的"。
另一个选项,在存储过程中声明参数为null或",如.
create procedure spname
{
parameter1 int = null, parameter2 varchar(50) = null, parameter3 varchar(50) = ""
}
as
begin
.....
end
当你从c#传递参数时,如果你不传递,那么它会自动取空白(")或null作为你在参数的右侧声明