Kriteriumsübergabe

30/03/2008 - 12:27 von ludwig Königbauer | Report spam
Hallo zusammen,
ich bastele an einer Umkreissuche und will der Sinus-Funkion über
Eingabe per TextBox das Kriterium übergeben.

double krit = Double.Parse(textBox1.Text);
string query = "SELECT id, ort, sin(+ 'krit+ ')as Distance from Uk";

Gebe ich statt krit z.B. 49 ein, funktioniert es;
gebe ich das aber über die TextBox ein, bekomme ich die Fehlermeldung:

Fehler beim Konvertieren des varchar-Datentyps in float.

In der zustàndigen Spalte der Tabelle ist vom Datentyp float .
Kann mir jemand sagen, wie ich das Kriterium richtig setzen muss.

Danke und Gruß
Ludwig
 

Lesen sie die antworten

#1 Elmar Boye
30/03/2008 - 17:29 | Warnen spam
Hallo Ludwig,

ludwig Königbauer schrieb:
Hallo zusammen,
ich bastele an einer Umkreissuche und will der Sinus-Funkion über
Eingabe per TextBox das Kriterium übergeben.

double krit = Double.Parse(textBox1.Text);
string query = "SELECT id, ort, sin(+ 'krit+ ')as Distance from Uk";



SQL spricht üblicherweise englisch, so dass ein Dezimalpunkt
zu verwenden ist und die Anführungszeichen sind überflüssig.

Dem Problem gehst Du am einfachsten aus dem Weg in dem Du einen
Parameter verwendest, und je nach Provider als @Krit (SQL Server)
bzw. mit "?" als Platzhalter einsetzt.

Inline (unter Vorbehalt, da ich den Provider nicht kenne -
könnte es in etwa so aussehen:
query = "SELECT ... SIN( +
+ krit.ToString(CultureInfo.InvariantCulture)
+ ") AS Distance ..."

InvariantCulture verwendet unabhàngig von den aktuellen
Làndereinstellungen einen Dezimalpunkt.

Gruß Elmar

Ähnliche fragen