In dieser Lektion erstellen Sie eine Visual C#-Anwendung für die Kommunikation mit dem Webserver.
Voraussetzungen
In dieser Lektion wird davon ausgegangen, dass Sie einen Webserver gemäß den Anweisungen in Lektion 1 eingerichtet haben. Siehe Lektion 1: Einrichten eines Webservers für den Empfang von SOAP-Anforderungen und das Senden von SOAP-Antworten.
Eine neue Version von Visual Studio ist erforderlich, um diese Lektion durchzuführen.
In dieser Lektion wird davon ausgegangen, dass Sie die Rollen und Privilegien haben, die im Abschnitt "Privilegien" am Anfang dieser praktischen Einführung aufgeführt sind: Praktische Einführung: Verwenden von Visual C# für den Zugriff auf einen SOAP/DISH-Webdienst.
Kontext und Bemerkungen
Diese Lektion enthält mehrere Verweise auf localhost. Verwenden Sie statt localhost den Hostnamen oder die IP-Adresse des Webservers aus Lektion 1, wenn der Webclient nicht auf demselben Computer ausgeführt wird wie der Webserver.
Dieses Beispiel verwendet Funktionen aus .NET Framework 2.0.
Starten Sie Visual Studio.
Erstellen Sie ein neues Windows Forms-Anwendungsprojekt in Visual C#.
Ein leeres Formular wird angezeigt.
Fügen Sie dem Projekt einen Webverweis hinzu.
Klicken Sie auf Projekt » Dienstverweis hinzufügen.
Klicken Sie im Fenster "Dienstverweis hinzufügen" auf die Option Erweitert.
Klicken Sie im Fenster "Einstellungen für Dienstverweise" auf die Option Webverweis hinzufügen.
Geben Sie im Fenster "Webverweis hinzufügen" die Zeichenfolge http://localhost:8082/demo/SASoapTest_DNET in das Feld URL ein.
Klicken Sie auf Gehe zu (oder den grünen Pfeil).
Visual Studio listet die im SASoapTest_DNET-Dienst verfügbare EmployeeList-Methode auf.
Klicken Sie auf Verweis hinzufügen.
Visual Studio fügt localhost zum Projekt Webverweise im Fenster Projektmappen-Explorer hinzu.
Füllen Sie das leere Formular mit den gewünschten Objekte für die Webclient-Anwendung mit Daten.
Ziehen Sie im Fenster Toolbox die ListBox- und Button-Objekte in das Formular und aktualisieren Sie die Textattribute so, dass das Formular dem in der folgenden Darstellung ähnelt:
Schreiben Sie eine Prozedur, die auf den Webverweis zugreift und die verfügbaren Methoden verwendet.
Doppelklicken Sie auf die Schaltfläche Employee List und fügen Sie den folgenden Code für das Schaltflächenereignis "Click" hinzu:
int sqlCode; listBox1.Items.Clear(); localhost.SASoapTest_DNET proxy = new localhost.SASoapTest_DNET(); DataSet results = proxy.EmployeeList(out sqlCode); DataTableReader dr = results.CreateDataReader(); listBox1.BeginUpdate(); while (dr.Read()) { for (int i = 0; i < dr.FieldCount; i++) { string dataTypeName = dr.GetDataTypeName(i); string dataName = dr.GetName(i); System.Type ftype = dr.GetFieldType(i); System.TypeCode typeCode = System.Type.GetTypeCode(ftype); string columnName = "(" + dataTypeName + ")" + dataName + "="; if (dr.IsDBNull(i)) { listBox1.Items.Add(columnName + "(null)"); } else { switch (typeCode) { case System.TypeCode.Int32: Int32 intValue = dr.GetInt32(i); listBox1.Items.Add(columnName + intValue); break; case System.TypeCode.Decimal: Decimal decValue = dr.GetDecimal(i); listBox1.Items.Add(columnName + decValue.ToString("c")); break; case System.TypeCode.String: string stringValue = dr.GetString(i); listBox1.Items.Add(columnName + stringValue); break; case System.TypeCode.DateTime: DateTime dateValue = dr.GetDateTime(i); listBox1.Items.Add(columnName + dateValue); break; case System.TypeCode.Boolean: Boolean boolValue = dr.GetBoolean(i); listBox1.Items.Add(columnName + boolValue); break; default: listBox1.Items.Add(columnName + "(unsupported)"); break; } } } listBox1.Items.Add(""); } listBox1.EndUpdate(); dr.Close(); |
Führen Sie die Anwendung aus.
Klicken Sie auf Debuggen » Debuggen starten.
Kommunizieren Sie mit dem Web-Datenbankserver.
Klicken Sie auf Employee List.
Das ListBox-Objekt zeigt die Ergebnismenge EmployeeList als (Typ)Name=Wert-Paare an. Die folgende Ausgabe zeigt wie ein Eintrag im ListBox-Objekt angezeigt wird:
(Int32)EmployeeID=102 (Int32)ManagerID=501 (String)Surname=Whitney (String)GivenName=Fran (Int32)DepartmentID=100 (String)Street=9 East Washington Street (String)City=Cornwall (String)State=NY (String)Country=USA (String)PostalCode=02192 (String)Phone=6175553985 (String)Status=A (String)SocialSecurityNumber=017349033 (Decimal)Salary=$45,700.00 (DateTime)StartDate=8/28/1984 12:00:00 AM (DateTime)TerminationDate=(null) (DateTime)BirthDate=6/5/1958 12:00:00 AM (Boolean)BenefitHealthInsurance=True (Boolean)BenefitLifeInsurance=True (Boolean)BenefitDayCare=False (String)Sex=F |
Der Salary-Betrag wird in das Währungsformat des Clients konvertiert.
Werten, die ein Datum ohne Uhrzeit enthalten, wird die Uhrzeit 00:00:00 oder Mitternacht zugewiesen (deren Anzeigeformat von den Sprachumgebungseinstellungen des Clients abhängt).
Werte, die NULL enthalten, werden mit der DataTableReader.IsDBNull-Methode getestet.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |