AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke C# Webservice Daten in ein Datagrid bekommen
Thema durchsuchen
Ansicht
Themen-Optionen

Webservice Daten in ein Datagrid bekommen

Ein Thema von Luckie · begonnen am 7. Mär 2006 · letzter Beitrag vom 8. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Webservice Daten in ein Datagrid bekommen

  Alt 7. Mär 2006, 13:55
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Webservice Daten in ein Datagrid bekommen

  Alt 7. Mär 2006, 15:10
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.

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
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Interceptor
Interceptor

Registriert seit: 28. Mai 2004
Ort: Würzburg
118 Beiträge
 
Delphi 6 Professional
 
#3

Re: Webservice Daten in ein Datagrid bekommen

  Alt 7. Mär 2006, 15:28
Welchen Datentyp liefert die Methode getRestaurants() denn zurück?
David
~ Nichts ist wahr, alles ist erlaubt ~
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Webservice Daten in ein Datagrid bekommen

  Alt 7. Mär 2006, 15:36
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Interceptor
Interceptor

Registriert seit: 28. Mai 2004
Ort: Würzburg
118 Beiträge
 
Delphi 6 Professional
 
#5

Re: Webservice Daten in ein Datagrid bekommen

  Alt 7. Mär 2006, 17:04
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

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
David
~ Nichts ist wahr, alles ist erlaubt ~
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Webservice Daten in ein Datagrid bekommen

  Alt 7. Mär 2006, 17:07
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Webservice Daten in ein Datagrid bekommen

  Alt 7. Mär 2006, 19:53
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 >>
---------------------------
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Interceptor
Interceptor

Registriert seit: 28. Mai 2004
Ort: Würzburg
118 Beiträge
 
Delphi 6 Professional
 
#8

Re: Webservice Daten in ein Datagrid bekommen

  Alt 7. Mär 2006, 21:42
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
David
~ Nichts ist wahr, alles ist erlaubt ~
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Webservice Daten in ein Datagrid bekommen

  Alt 7. Mär 2006, 23:23
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Webservice Daten in ein Datagrid bekommen

  Alt 8. Mär 2006, 01:45
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.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr.
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