Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   C# Webservice Daten in ein Datagrid bekommen (https://www.delphipraxis.net/64724-webservice-daten-ein-datagrid-bekommen.html)

Luckie 7. Mär 2006 12:55


Webservice Daten in ein Datagrid bekommen
 
Ich übe gerade etwas mit Webservices und habe mir diesen hier vorgenommen:
http://flexapps.macromedia.com/ws/se...taurantWS?wsdl
Er beinhaltet eine Liste von Restaurants.

Gibt es da irgendwie eine Möglichkeit alle Restaurants mit ihren Eigenschaften einfach in ein DataGrid zu stopfen?

Ungefähr so:
Code:
RestaurantServiceService rs = new RestaurantServiceService();                          
dataGridView1.DataSource = rs.getRestaurants();
Der Code funktioniert allerdings nicht, das DatenGrid bleibt leer. ;)

Luckie 7. Mär 2006 14:10

Re: Webservice Daten in ein Datagrid bekommen
 
Nachtrag:
Code:
private void btnGetReastaurants_Click(object sender, EventArgs e)
{           
      dataGridView1.ColumnCount = 2;
      dataGridView1.DataSource = restaurantServiceService1.getRestaurants();          
}
Wenn ich es so mache, habe ich schon mal 68 Zeilen im Grid und so viele Restaurants sind es auch. Nur sit das Grid leider leer. :gruebel:

Der Versuch das ganze in eine IList<Restaurant> ls = restaurantServiceService1.getRestaurants(); ist auch fehlgeschlagen mit der Fehlermeldung
Zitat:

Fehler 1 Der Typ "object[]" kann nicht implizit in "System.Collections.Generic.IList<WebService.com.m acromedia.flexapps.Restaurant>" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.) D:\Projekte Datawerk\PVS\SVN\branches\VSS_01_mp\WebService\Web Service\WebService\Form1.cs 29 36 WebService

Interceptor 7. Mär 2006 14:28

Re: Webservice Daten in ein Datagrid bekommen
 
Welchen Datentyp liefert die Methode getRestaurants() denn zurück?

Luckie 7. Mär 2006 14:36

Re: Webservice Daten in ein Datagrid bekommen
 
Ja, das wüßte ich auch mal gerne. Wenn ich das richtig sehe:
XML-Code:
<wsdl:message name="getRestaurantsRequest">
  </wsdl:message>
&#8722;
   <wsdl:message name="getRestaurantsResponse">
<wsdl:part name="getRestaurantsReturn" type="soapenc:Array"/>
</wsdl:message>

...

<wsdl:operation name="getRestaurants">
  <wsdl:input name="getRestaurantsRequest" message="impl:getRestaurantsRequest"/>
  <wsdl:output name="getRestaurantsResponse" message="impl:getRestaurantsResponse"/>
</wsdl:operation>
Ist das vom Typ soapenc:Array, was auch immer das ist.

Interceptor 7. Mär 2006 16:04

Re: Webservice Daten in ein Datagrid bekommen
 
Hey Luckie,

hab mir interessehalber den Webservice mal genauer angesehn. So wie's aussieht beinhaltet jedes object in dem object-array dass du mit "getRestaurants()" bekommst nochmal ein Array von XmlNodes.
Hab das testweise mal mit ner ListBox ausprobiert, ich poste dir hier mal meinen Code. Sollte ja für dich keine Schwierigkeit sein das in ein DataGridView zu übertragen :wink:

Code:
   
private void btnGetRestaurants_Click(object sender, EventArgs e)
{
  RestaurantService.RestaurantServiceService rs = new WindowsApplication1.RestaurantService.RestaurantServiceService();

  object[] restaurants = rs.getRestaurants();
  for(int i = 0; i < restaurants.Length; i++)
  {
    XmlNode[] nodes = (XmlNode[])restaurants[i];
    for(int j = 0; j < nodes.Length; j++)
      listBox1.Items.Add(nodes[j].InnerText);
  }
}
Hoffe du kannst damit was anfangen

Luckie 7. Mär 2006 16:07

Re: Webservice Daten in ein Datagrid bekommen
 
Ah. dann geht es wohl doch nicht so einfach, wie ich es dachte. Ich werde mir das morgen mal genauer angucken, jetzt ist erstmal Feierabend. ;)

Luckie 7. Mär 2006 18:53

Re: Webservice Daten in ein Datagrid bekommen
 
Hm, zu Huase mit Delphi 2006 bekomme ich immer diese Fehlermeldung:
Zitat:

---------------------------
Fehler
---------------------------
Fehler: Unable to import binding 'RestaurantWSSoapBinding' from namespace 'http://flexapps.macromedia.com/ws/services/RestaurantWS'. - Unable to import operation 'getCategories'. - The datatype 'Array' is missing.
---------------------------
OK Details >>
---------------------------
:gruebel:

Interceptor 7. Mär 2006 20:42

Re: Webservice Daten in ein Datagrid bekommen
 
Die gleiche Fehlermeldung bekam ich beim Visual Studio 2003 auch, mit der 2005er Version gings.
Ich vermute mal dass der Webservice nur zum 2.0er .NET Framework kompatibel ist, zumindest kann ich mir das nicht anders erklären.

Wenn du dich nen bissl in C# einarbeiten willst, würd ich dir sowieso eher zur Express-Version vom VS 2005 raten, oder alternativ #develop 2.0

Luckie 7. Mär 2006 22:23

Re: Webservice Daten in ein Datagrid bekommen
 
Nun ja, an der Arbeit habe ich das VS 2005, aber zu Hause eben nicht. aber mal sehen, was ich da morgen an der Arbeit draus mache. Es wäre aber schön, wenn man das irgendwie elegant in den DataGridView bekommen könnte. Sonst ist das Ding doch immer so schlau. :gruebel:

Elvis 8. Mär 2006 00:45

Re: Webservice Daten in ein Datagrid bekommen
 
Das WSDL ist falsch. Es validiert nicht gegen das mitgelieferte Schema.
Außerdem sind ein paar Typen krum deklariert. Deshalb vekommst du einen Array of Object statt Restaurant. ;)
Entweder du nimmst ein funktionierendes Sample oder du musst das WSDL selbst korrigieren. Die Schemafehler, die dein Studio ausgibt wenn du das WSDL darin öffnest sollten dir dabei helfen können. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz