![](/img/trans.png)
[英]SQL Server stored procedure not recognizing string.empty with like
[英]Send String.Empty to stored procedure
考慮這個例子:
MyParameters.Name = "Paul";
MyParameters.Nickname = String.Empty;
ExecuteStoredProcedure(MyStoredProcedure, MyParameters);
當我的存儲過程執行時,它會運行這樣的東西?
MyStoredProcedure 'Paul',''
所以,我的問題是: C# String.Empty
等於Database ''
?
PS。:我正在使用SQL Server
是的,空字符串作為空字符串發送。 請參閱,值已按預期轉換和發送。 例如,如果您需要發送null
那么您可以像這樣設置Nickname
:
MyParameters.Nickname = null;
您的代碼也相當於:
MyParameters.Nickname = "";
String.Empty
是語義上相同""
在C#中,這是一個零長度的非空字符串(無論是完全一致的更加復雜,取決於你使用的是什么版本的運行時)。 在SQL中, ''
是一個零長度的非空字符串。 所以是的, string.Empty
, String.Empty
和""
在邏輯上都等同於''
。
如上所述,String.Empty是相同的“”。
另一個選項,將參數聲明為null或存儲過程中的“”如...
create procedure spname
{
parameter1 int = null, parameter2 varchar(50) = null, parameter3 varchar(50) = ""
}
as
begin
.....
end
從c#傳遞參數時,如果未傳遞,則在聲明參數右側時,它將自動變為空白(“”)或null
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.