Can a webservice method return more than field value?

J

Jonathan

I have a SQL stored procedure for adding a new record in a transactions
table. It also has two return values: CounterID and IDKey.

I want to create a webservice that accepts the 10 input parameters and
returns the two return values.

My C# programmer here says that webservice methods can only return 1 value
per method. Is that right? Though I haven't ever created a webservice, I
would have thought that a method could return a whole lot of field values.

TIA
 
J

jm

I have a SQL stored procedure for adding a new record in a transactions
table. It also has two return values: CounterID and IDKey.

I want to create a webservice that accepts the 10 input parameters and
returns the two return values.

My C# programmer here says that webservice methods can only return 1 value
per method. Is that right? Though I haven't ever created a webservice, I
would have thought that a method could return a whole lot of field values.

TIA

I'm still learning, but...It does but in the format of choice. For
example, you can return complex datatypes in JSON format from
webservices with the [ScriptService] attribute.
 
S

Steven Cheng [MSFT]

Hi Jonathan,

As for returning multiple values in webservce webmethod, I think you can
consider the following two approaches:

1. You can define a custom class type which contains multiple member field
to hold the values you want to return. And in your webservice webmethod,
you return the custom class object instead of individual primitive types.
e.g.

[WebMethod]
public MyType helloWorld()
{
MyType mt = new MyType();
mt.field1 = xx;
mt.field2 = yy;

return mt;
}

http://www.crazysalsadancer.com/2007/01/return-multiple-values-from-web-serv
ice.html

2. You can also use "by ref" parameter to define webmethod
parameters(which can also return to the calling client).

For example, the following webmethod return a string value, and also define
a integer paramete as "by reference" that can return value to client.

[WebMethod]
public string WSMethod(string name, ref int status)
{
status = 3;
return "result";
}

At client side, you can call the webservice method and get the two value
returned( the string return value and the integer parameter):

====================
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim status As Integer
Dim ws As New WSREF.WebService
Dim ret As String = ws.WSMethod("steven", status)

MessageBox.Show("result: " & ret & ", status: " & status)

End Sub

======================

Hope this helps.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead


Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
(e-mail address removed).

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.

--------------------
 
S

siccolo

I have a SQL stored procedure for adding a new record in a transactions
table. It also has two return values: CounterID and IDKey.

I want to create a webservice that accepts the 10 input parameters and
returns the two return values.

My C# programmer here says that webservice methods can only return 1 value
per method. Is that right? Though I haven't ever created a webservice, I
would have thought that a method could return a whole lot of field values..

TIA

you can always return 1 value -XML string - that would include all the
returning data ....


more at http://www.siccolo.com/articles.asp
 
S

Steven Cheng [MSFT]

Hi Jonathan,

Have you got any progress on this or does the information in my last reply
help you?

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead


Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
(e-mail address removed).

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.

--------------------
Date: Thu, 03 Jul 2008 03:16:03 GMT
Subject: RE: Can a webservice method return more than field value?
Hi Jonathan,

As for returning multiple values in webservce webmethod, I think you can
consider the following two approaches:

1. You can define a custom class type which contains multiple member field
to hold the values you want to return. And in your webservice webmethod,
you return the custom class object instead of individual primitive types.
e.g.

[WebMethod]
public MyType helloWorld()
{
MyType mt = new MyType();
mt.field1 = xx;
mt.field2 = yy;

return mt;
}

http://www.crazysalsadancer.com/2007/01/return-multiple-values-from-web-ser v
ice.html

2. You can also use "by ref" parameter to define webmethod
parameters(which can also return to the calling client).

For example, the following webmethod return a string value, and also define
a integer paramete as "by reference" that can return value to client.

[WebMethod]
public string WSMethod(string name, ref int status)
{
status = 3;
return "result";
}

At client side, you can call the webservice method and get the two value
returned( the string return value and the integer parameter):

====================
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim status As Integer
Dim ws As New WSREF.WebService
Dim ret As String = ws.WSMethod("steven", status)

MessageBox.Show("result: " & ret & ", status: " & status)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top