簡體   English   中英

將String.Empty發送到存儲過程

[英]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.EmptyString.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM