I have a datatable I create and fill with a simple SQL Statement. I add the
table to a dataset and return the dataset through a webservice to the
client. I have tested the method through the Invoke page created by Visual
Studio and it does return a dataset (I have attached a small portion of it).
But when I call the method through a web service I get the following error:
System.Web.Services.Protocols.SoapException: Server was unable to process
request. ---> System.ArgumentNullException: 'table' argument cannot be null.
Parameter name: table
at System.Data.DataTableCollection.BaseAdd(DataTable table)
at System.Data.DataTableCollection.Add(DataTable table)
at Service.GetData()
--- End of inner exception stack trace ---
Here is he code that the web service uses to get the data (with my
comments). Any help on this would be much appreciated.
John
<WebMethod()> _
Public Function GetData() As Data.DataSet
myDAL.ProviderName = "System.Data.SqlClient"
myDAL.ConnectionString = connection string
Dim tempDT As Data.DataTable = New Data.DataTable
tempDT = myDAL.ExecuteDataTable("SELECT * FROM PRODUCT") --> This process
goes to a class module in the code that takes the sql statment connects to
the database and returns a datatable
GetData = New Data.DataSet 'Set the DataSet
GetData.Tables.Add(tempDT) 'Add the DataTable
Return GetData 'Return it
End Function
As I said this works just fine. Here is an example of the data it returns
(XML from the invoke).
<?xml version="1.0" encoding="utf-8" ?>
- <DataSet xmlns="
http://tempuri.org/"> - <xs:schema id="NewDataSet" xmlns=""
xmlns:xs="
http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xs:element name="NewDataSet" msdata:IsDataSet="true"
msdata:UseCurrentLocale="true">
- <xs:complexType>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="Table1">
- <xs:complexType>
- <xs:sequence>
<xs:element name="Product__x0023_" msdata:ReadOnly="true"
msdata:AutoIncrement="true" type="xs:int" />
<xs:element name="Traveler__x0023_" type="xs:int" />
<xs:element name="Type__x0023_" type="xs:int" />
- <xs:element name="Part_Number">
- <xs:simpleType>
- <xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Date_Shipped" type="xs:dateTime" minOccurs="0" />
<xs:element name="Operator__x0023_" type="xs:int" />
<xs:element name="Create_Date" type="xs:dateTime" />
<xs:element name="Shop_Order__x0023_" type="xs:int" />
<xs:element name="Date_Closed" type="xs:dateTime" minOccurs="0" />
- <xs:element name="Ingot_Number" minOccurs="0">
- <xs:simpleType>
- <xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Status__x0023_" type="xs:int" minOccurs="0" />
- <xs:element name="Anneal_Number" minOccurs="0">
- <xs:simpleType>
- <xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="MRT_Number" minOccurs="0">
- <xs:simpleType>
- <xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Double_Single_Length" type="xs:int" minOccurs="0" />
<xs:element name="Carton__x0023_" type="xs:int" minOccurs="0" />
<xs:element name="Weight" type="xs:int" minOccurs="0" />
<xs:element name="Sister_Piece__x0023_" type="xs:int" minOccurs="0" />
<xs:element name="Slab_Traveler__x0023_" type="xs:int" minOccurs="0" />
<xs:element name="Chemistry__x0023_" type="xs:int" minOccurs="0" />
- <xs:element name="Traveler_Number" minOccurs="0">
- <xs:simpleType>
- <xs:restriction base="xs:string">
<xs:maxLength value="15" />
</xs:restriction>
</xs:simpleType>
</xs:element>
- <xs:element name="Plate_ID" minOccurs="0">
- <xs:simpleType>
- <xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="FinalID" type="xs:boolean" minOccurs="0" />
<xs:element name="Traveler_Step__x0023_" type="xs:int" minOccurs="0" />
<xs:element name="Marked" type="xs:int" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
- <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
- <NewDataSet xmlns="">
- <Table1 diffgr:id="Table11" msdata:rowOrder="0">
<Product__x0023_>244</Product__x0023_>
<Traveler__x0023_>17</Traveler__x0023_>
<Type__x0023_>1</Type__x0023_>
<Part_Number>U06436L</Part_Number>
<Operator__x0023_>10</Operator__x0023_>
<Create_Date>2007-04-12T12:48:32.61-06:00</Create_Date>
<Shop_Order__x0023_>12</Shop_Order__x0023_>
<Ingot_Number>U06436L</Ingot_Number>
<Status__x0023_>1</Status__x0023_>
<Chemistry__x0023_>2</Chemistry__x0023_>
<Traveler_Number>52896</Traveler_Number>
<FinalID>false</FinalID>
<Traveler_Step__x0023_>133</Traveler_Step__x0023_>
<Marked>0</Marked>
</Table1>
- <Table1 diffgr:id="Table12" msdata:rowOrder="1">
<Product__x0023_>245</Product__x0023_>
<Traveler__x0023_>18</Traveler__x0023_>
<Type__x0023_>2</Type__x0023_>
<Part_Number>U06436LA</Part_Number>
<Operator__x0023_>4</Operator__x0023_>
<Create_Date>2007-04-12T13:14:15.613-06:00</Create_Date>
<Shop_Order__x0023_>12</Shop_Order__x0023_>
<Ingot_Number>U06436L</Ingot_Number>
<Status__x0023_>1</Status__x0023_>
<Weight>2360</Weight>
<Slab_Traveler__x0023_>89</Slab_Traveler__x0023_>
<Chemistry__x0023_>2</Chemistry__x0023_>
<Traveler_Number>52896A</Traveler_Number>
<FinalID>false</FinalID>
<Traveler_Step__x0023_>142</Traveler_Step__x0023_>
<Marked>0</Marked>
</Table1>
- <Table1 diffgr:id="Table13" msdata:rowOrder="2">
<Product__x0023_>246</Product__x0023_>
<Traveler__x0023_>18</Traveler__x0023_>
<Type__x0023_>2</Type__x0023_>
<Part_Number>U06436LB</Part_Number>
<Operator__x0023_>4</Operator__x0023_>
<Create_Date>2007-04-12T13:14:24.923-06:00</Create_Date>
<Shop_Order__x0023_>12</Shop_Order__x0023_>
<Ingot_Number>U06436L</Ingot_Number>
<Status__x0023_>1</Status__x0023_>
<Weight>2510</Weight>
<Slab_Traveler__x0023_>90</Slab_Traveler__x0023_>
<Chemistry__x0023_>2</Chemistry__x0023_>
<Traveler_Number>52896B</Traveler_Number>
<FinalID>false</FinalID>
<Traveler_Step__x0023_>142</Traveler_Step__x0023_>
<Marked>0</Marked>
</Table1>
- <Table1 diffgr:id="Table14" msdata:rowOrder="3">
<Product__x0023_>247</Product__x0023_>
<Traveler__x0023_>18</Traveler__x0023_>
<Type__x0023_>2</Type__x0023_>
<Part_Number>U06436LC</Part_Number>
<Operator__x0023_>4</Operator__x0023_>