WCF / ASMX :: How To Return A Dataset In Webservice And Consume It
Mar 7, 2011i want to return a dataset, and consume it in the asp pages
how can i do that
suppose a dataset has 100 records, then how do i consume it in other websites
i want to return a dataset, and consume it in the asp pages
how can i do that
suppose a dataset has 100 records, then how do i consume it in other websites
I have created a asmx web service.The service will interact with SQL Server database to Get, Insert and Update of some tables in my db.I have one Service method called AddItem which takes a class object as parameter. with that parameter I am inserting the values into the database. In the same way I have another service method that Gets all the Items from db using the same class and returns the class object as the return type for my service.Â
Here is my sample AddItem() and GetAllItems() prototypeÂ
 Collapse | Copy Code
i have a data library dll and first is it possible to use it in webservice forexample i call it as using DataLibrary; then in web method i will use it like
public boolean MethodName(int a)
{
if(DataLibrary.Method(a))
return true;
else
return false;
}
and also i have to tell my all data connections are in DataLibrary.dll
my second question is i will use webservice to communucate with flash i will send flash a DataSet but flash cant read DataSet so i have give it as XML right?
so how could i change my following method which returns dataset to return xml ?
[Code]....
I have one problem is that when i send large dataset containing byte array.. then webservice not respond well..
it shows error like underlying connection was closed...
I mark that when dataset size goes some large then only problem occurs otherwise it works well..
how to send large dataset over web service..
I can fill and then return typed dataset from a web method, but applying these steps by using Typed Datatable instead of Typed Dataset I cannot return filled typed dataTable. So, is it possible to return typed dataTable from a web method? If yes, how can I do this?
I shall give a little bit information about my project. There is 3 project in my solution.
I) Presentation Layer (WinForm), II) Business Layer (Web Service) ,
III) Data Access Layer (Win form project type)... The problem is that;
I use 2 seperate methods. 1st is FillTable() which fill a datatable in my Typed Dataset in Data Access layer. The 2nd isGetTable() which should return typed datatable filled by FillTable() method. I try these methods and FillTable() methods (goes from I. layer to II. Layer and then III. layer) fills a datatable properly and after that I can return this datatable by calling GetTable() method from Typed Dataset (in III. layer) to WebService. I have tested the rows count of returning datatable and there is no problem up to WebService. But even after returning this typed datatable from WebService the table comes to Presentation Layer empty. So, there is a problem returning filled typed datatable from WebService to WebForm (from II. layer to I. layer).
On the other hand, if I try this methods by returning Typed Dataset instead of Typed Datatable, I can return properly with a filled datatable in Typed Dataset. But, I relly do not want to return a huge filled dataset which may contain 15 tables instead of one datatable. My questions;
1) Is there any logical approach mistake on my Layer Architecture?
2) What should I do in order to get a Typed Datatable from Web Service (II. Layer of my project)?
vs2010, .NET 4.0I have a webmethod which I want to return a data record (for example: name, surename, address, age, zip etc)I wonder how to accomplish this. I think the solution is about creating an object which contains all the records serialized. And then the webmethod returns this serialized object. I'm not 100% sure how to accomplish this, if some of you good provide me with some tips, tutorial or link to an article explaining it, that would be great
View 1 RepliesI have an existing RESTful webservice that I consume (I did not create) from a 3rd party. I currently use WebRequest and WebResponse to create and read the request and response. I access the service by url with query string parameters to pass what type of data I am requesting. I get the results back in XML, then have to load it into a new XmlDocument, create a bunch of DataSets, XmlNodeReaders, DataTables, etc. It's really messy in my opinion.
What I am looking to accomplish is to take advantage of the Entity Framework Model, OData, and WCF. I have never create or used WCF yet. The webservice that I am accessing is some sort of service created from within Apache, it is not .Net. I don't know whether or not I can utilize the new .Net Framework 4.0 services to make the consumption of this service any better, easier, or cleaner.
I would really appriciate if someone could show me example of how to use api webservice of another site and retreive content (or whatever data is returned) and publish that content localy on omy own site. Api webservice I´m planning to use has support for HTTP GET & POST and SOAP 1.1 and 1.2.
I created my site with webmatrix and razor.I tryed searching on the net but I'm having hard time finding relevant content.
I am reciving an XML file(probabbly genrated by webservice), when i request a web url. EVery desried information is in this xml file. Now my problem is to access this file in XML control. I have genrated xsl file for the same xml file.Assume below mentioned url giving me xml file.
strign url=http://remoteurl.com/abc?myvariable="myvalue"
I tried this code.
Xml1.Datasource=url;
Xml1.TransformSource=abc.xsl;
It is not working. However if i copy the content of xml file and save it inside website and name it abc.xml and type this line it is working fine..
Xml1.Datasource=abc.xml;
Xml1.TransformSource=abc.xsl;
i want to do it automatically.
I was using a web service like this
1 - Included a web reference named "wsProxy";
2 - in default.aspx.cs
using wsProxy;
wsProxy.Service wSp = new wsProxy.Service();
TextBox1.Text = wSp.HelloWorld();
it was working like a charm but now this web service is secured.
as i'm new to .net, i deleted the web referece and include it again just bcoz i dont know where to place the username, password
now my web.config is
[code]....
Getting Error
The request failed with HTTP status 401: Unauthorized
I've been given the task of consuming a client's web service, and all they've given me is a XSD file. I'm a little unsure how to go about doing this, as the only other time I've consumed a web service was internally and we just pulled it in as a web reference to our project. Where do I start when all I have the XSD (below)?
<?xml version="1.0" encoding="UTF-8"?>
[Code]....
[Code]....
Error Message
Server Error in '/' Application.
CX_ST_MATCH_ELEMENT:XSLT exception.System expected element 'IOrgeh' Description: An unhandled exception occurred during the execution of the current web request. review the stack trace for more information about the error and where it originated in the code. Exception Details:System.Web.Services.Protocols.SoapException: CX_ST_MATCH_ELEMENT:XSLT exception.System expected element 'IOrgeh'Source Error:
[Code]....
Line: 49 Stack Trace:
[Code]....
I have the URL of webservice of some companies in database as
Company-A http://companya.com/myservice/calculate.asmx
Company-B http://companyb.com/someservice/post.asmx
Company-C http://companyc.com/theservice/help.asmx
Company-D http://companyd.com/services/count.asmx
I want to dynamically consume these webservices. As sometime I need only CompanyA webservice, some time Company-B webservice. How I can do these.I thing I have to use WebService class (Imports System.Web.Services)
I need to call remote web services for example [URL]. So how to do it? I watched all asp.net video about web servies but in all videos they speaking just about local web services,
View 5 Replieshow can I consume a Web service in my client system which has deployed in different server?
View 2 RepliesI added a Web Method to the existing web service. I don't see this method in my web project. I can see all the old methods but I couldn't access this method. Do I have to create proxy for this method?
View 2 RepliesI am creating a class library which will have business logic and i want to call this from SQL Server 2005 DTS. What i want to know is how to consume a WCF service from this class library project and compile it in a dll. How to deal with app.config created when servie is refered in class library? Could somebody send me a link to any article which can help me to implement the same in my current project?
View 11 Replies.NET: Programmatically set user and password to consume an OAS web service?
View 1 RepliesIs it possible to consume a wcf survive from a class library and use class library in SQL Server 2005?
View 7 RepliesI am working on WCF Data service which imported stored procedure, as below.
[WebGet]
public List<GetMTSearchResultTest_Result> GettMTSearchResultTest()
{
MediaMarketResearch_PRODEntities ent = new MediaMarketResearch_PRODEntities();
return ent.GetMTSearchResultTest().ToList();
}
when i consuming this in my client application it says error as "The closed type MMRClient.MMRServiceReference.GetMTSearchResultTest_Result does not have a corresponding element settable property." I am getting this error while bind to the grid view as below.
DataServiceContext context = new DataServiceContext(new [URL])); IEnumerable<GetMTSearchResultTest_Result> empResult = context.Execute<GetMTSearchResultTest_Result>(new Uri [URL];
GridView1.DataSource = empResult;
GridView1.DataBind();
Note: I imported this stored proc as complex type.
I have a lot confusion on data contract .I think Data contract will create according to the Service contract and Data Base Table. For Example Let say i have service contract and i have three table product,order,customer
[ServiceContract]
public interface IMembersService
{
[OperationContract]
void insertProductDetails(clsProduct objProduct);
//What about the return type can we make it bool
[OperationContract]
List<clsProduct> getproductInfoByID(int id);
[OperationContract]
List<clsProduct> getproductInfo();
//========================================
[OperationContract]
void insertOrderDetails(clsOrder objOrder);
//What about the return type can we make it bool
[OperationContract]
List<clsOrder> getOrderInfoByID(int id);
[OperationContract]
List<clsOrder> getOrderInfo();
//========================================
[OperationContract]
void insertCustomerDetails(clsOrder objOrder);
//What about the return type can we make it bool
[OperationContract]
List<clsOrder> getCustomerInfoByID(int id);
[OperationContract]
List<clsOrder> getCustomerInfo();
}
For this case can i create three datacontact clsProduct,clsOrder,clsCustomer .i mean data contact depends on ther service contact and the table.
What is the best way to create a Contract that will consume multiple database records? The database records will have 20 fields and maximun of 1000 rows.
View 1 RepliesA sample web service app I have been practicing with has two web methods:
1) HelloWorld -- which I can read the data from no problem - just a string
2) ClientData[] -- which returns an array of struct objects -- this is where I have the question.
Here is my instantiation of the webservice in my winform app for reading from HelloWorld
myWebSvc1.WebService1 s1 = new myWebSvc1.WebService1();
string y = s1.HelloWorld(); //--no problems so far here
Console.WriteLine(y);
//--but when I add the call to GetClientData() I have a problem
List<ClientData> ls = new List<ClientData>(s1.GetClientData(3)); //--problem here
public struct ClientData
{
public String Name;
public int ID;
}
[WebMethod(CacheDuration = 30,
Description="Returns an array of Clients.")]
public ClientData[] GetClientData(int Number)
{
ClientData [] Clients = null;
if (Number > 0 && Number <= 10)
{
Clients = new ClientData[Number];
for (int i = 0; i < Number; i++)
{
Clients[i].Name = "Client " + i.ToString();
Clients[i].ID = i;
}
}
return Clients;
}
If I browse the .asmx file -- the sample xml returns the following if I enter 3 for GetClientData function param
<?xml version="1.0" encoding="utf-8" ?>
- <ArrayOfClientData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://codeproject.com/webservices/">
- <ClientData>
<Name>Client 0</Name>
<ID>0</ID>
</ClientData>
- <ClientData>
<Name>Client 1</Name>
<ID>1</ID>
</ClientData>
- <ClientData>
<Name>Client 2</Name>
<ID>2</ID>
</ClientData>
</ArrayOfClientData>
From my winform app I get the following error messages when trying to add the GetClientData function call above --
Error 1 The best overloaded method match for 'System.Collections.Generic.List<DSS_2008.Form7.ClientData[]>.List(System.Collections.Generic.IEnumerable<DSS_2008.Form7.ClientData[]>)' has some invalid arguments
Error 2 Argument '1': cannot convert from 'DSS_2008.myWebSvc1.ClientData[]' to 'System.Collections.Generic.IEnumerable<DSS_2008.Form7.ClientData[]>'
Error1 The best overloaded method match for 'System.Collections.Generic.List<DSS_2008.Form7.ClientData[]>.List(int)' has some invalid arguments
Error 2 Argument '1': cannot convert from 'DSS_2008.myWebSvc1.ClientData[]' to 'int'
How can I fix this so that I can read the result into my winform app?
//--sample web service
namespace MyService
{
using System;
using System.Collections;
using System.Data;
using System.Web;
using System.Web.Services;
public struct ClientData
{
public String Name;
public int ID;
}
/// <summary>
/// Summary description for WebService1.
/// </summary>
[WebService(Namespace="http://codeproject.com/webservices/",
Description="This is a demonstration WebService.")]
public class WebService1 : System.Web.Services.WebService
{
//--source of sample:
http://www.codeproject.com/KB/webservices/myservice.aspx
private const int CacheHelloWorldTime = 10; // seconds
public WebService1()
{
//CODEGEN: This call is required by the ASP+ Web Services Designer
InitializeComponent();
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
}
//WEB SERVICE EXAMPLE
//The HelloWorld() example service returns the string Hello World
//To build, uncomment the following lines then save and build the project
//To test, right-click the Web Service's .asmx file and select View in Browser
//
[WebMethod(CacheDuration = CacheHelloWorldTime,
Description="As simple as it gets - the ubiquitous Hello World.")]
public string HelloWorld()
{
return "Hello World bbb";
}
[WebMethod(CacheDuration = 30,
Description="Returns an array of Clients.")]
public ClientData[] GetClientData(int Number)
{
ClientData [] Clients = null;
if (Number > 0 && Number <= 10)
{
Clients = new ClientData[Number];
for (int i = 0; i < Number; i++)
{
Clients[i].Name = "Client " + i.ToString();
Clients[i].ID = i;
}
}
return Clients;
}
}
}
i have a web service to send emails and i am calling the web service in clr based store procudere and that store procedure is inovked by trigger.
when the trigger is inovoked Web service timout exception occurred.
i have read on the following thread that calling web service async would resolve my problem
[URL]
but i dont know how to call web service method async in clr based store procedure.
On my page I have a dropdown for country.
On my asmx service I want to get the value of the dropdownlist to filter the next input which will be state/providence.
My code on the asmx:
[Code]....
I want to add another clause to the WHERE statement to restrict Country = @Country so I will need to get that value to the web service.