2014-09-29 56 views
0

空值我有以下方法在我的web服務接受的Web服務調用

<WebMethod(Description:="GetMerchants")> _ 
    Public Function GetMerchants(ByVal separator As String, ByVal DateFrom As String, ByVal DateTo As String, ByVal ID As String, ByVal MerchantID As String, ByVal RimNo As String, _ 
            ByVal Name As String, ByVal Description As String, ByVal Category As String, 
            ByVal Region As String, ByVal isHidden As Boolean) 

我想送一個空值是否隱藏,但它給我下面的錯誤

系統。 ArgumentException:無法轉換爲System.Boolean。 參數名稱:type ---> System.FormatException:String未被識別爲有效的布爾值。 (System.Web.Services)上的System.Convert.ChangeType(Object value,Type conversionType,IFormatProvider Provider)上的System.Boolean.Parse(String value) at System.String.System.IConvertible.ToBoolean(IFormatProvider provider) .Protocols.ScalarFormatter.FromString(字符串值,類型類型) ---內部異常堆棧跟蹤的末尾--- at System.Web.Services.Protocols.ScalarFormatter.FromString(字符串值,類型類型) at System。 Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection集合) at System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request) at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters() at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

我該如何設置ishidden的默認值爲false。順便說一下,它甚至沒有進入該方法。當我點擊調用時,顯示錯誤,並通過放置斷點,我意識到它甚至沒有進入方法。

我在網絡搜索,我找不到一種方法來設置默認值的可選字段。有沒有辦法做到這一點?

+0

你在再喂什麼樣的價值觀?你的請求是什麼樣的? – kkuilla 2014-09-29 08:14:44

+0

您還應該用適當的語言標記您的問題以獲得適當的幫助。 – kkuilla 2014-09-29 08:15:28

+0

SELECT * from my_table where(isHidden like'0'),它工作正常,當我把它作爲字符串被隱藏,但我想把它作爲布爾值來測試是否可以設置可選參數的默認值 – 2014-09-29 08:34:24

回答

0

由於「bool」不可爲空,您需要將其更改爲可爲空的類型。在C#中,我會寫「bool?isHidden」而不是「bool」,否則(這將是相同的)是「Nullable isHidden」。

因此,將代碼更改爲「As Boolean?」 (最後一個問號)。那麼它應該接受null。 =)

可空類型有兩個屬性「HasValue」和「Value」。

你可以閱讀有關可空類型爲:http://msdn.microsoft.com/en-us/library/ms235245.aspx

+0

我試過了,我收到以下消息「測試表單僅適用於具有原始類型的方法作爲參數。」 – 2014-09-29 08:31:43

+0

@Fares Joseph Eid - http://stackoverflow.com/questions/8037505/asmx-webservice-test-form-only-available-on-local-machine-for-one-webmethod-onl – Sasse 2014-09-29 08:34:11