Veröffentlicht 3. November 200420 j Hy! Ich probiere gerade mit einem WebService rum - der Service (get_Kunden() lieferte mir auch immer hübsch den Inhalt er Tabelle Kunden zurück. Nun versuche ich über die Parameter des Services die Suche einzugrenzen - mit der Kundennummer klappt es auch, nur wenn ich versuche nach einem Namen einzugrenzen ... Wenn ich dieses tue - dann erscheint folgende Fehlermeldung: System.ArgumentException: '' kann nicht zu 'System.Int32' konvertiert werden. Parametername: type ---> System.FormatException: Die Eingabezeichenfolge hat das falsche Format. at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.String.System.IConvertible.ToInt32(IFormatProvider provider) at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) at System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type) --- Ende der internen Ausnahmestapelüberwachung --- at System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type) at System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection) at System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request) at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters() at System.Web.Services.Protocols.WebServiceHandler.Invoke() at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest() Was soll mir denn das sagen? Irgendwie habe ich da ein Brett vor dem Kopf! Anbei der Code von get_Kunden(): function TWebService1.getKunden(KN_Nr:Integer; Name,Vorname,PLZ,Ort,Telefon:String) :DataSet; var connstr : string; conn : OleDbConnection; cmdSel : OleDbCommand; da : OleDbDataAdapter; ds : DataSet; sql : string; begin connstr:= 'Provider=ASAProv;'+ 'Data Source =Genesis;'; conn:= OleDbConnection.Create(connstr); sql := 'SELECT * FROM Perso_Haupt WHERE 1=1'; if KN_Nr <> 0 then sql := sql+ ' AND Person_NR = '+KN_Nr.ToString; if Name <> '' then sql := sql+' AND Name = ' + Name; if Vorname <> '' then sql := sql+' AND Vorname = ?'; if PLZ <> '' then sql := sql+' AND PLZ = ?'; if Ort <> '' then sql := sql+' AND Ort = ?'; if Telefon <> '' then sql := sql+' AND Telefon = ?'; sql:= sql+' ORDER BY Person_NR'; cmdsel:=OleDbCommand.Create(sql,conn); da:= OleDbDataAdapter.Create(cmdsel); ds:= DataSet.Create; conn.Open; da.Fill(ds); conn.Close; Result:= ds; end; Wie bekomme ich denn den Namen da rein? in D6 gab es doch quotedstring o.ä. THX!
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.