Also, ich habe eine Nummer in einer Box, es kann entweder positiv oder negativ sein. Abhängig von dieser Wahl ändert sich mein Algorithmus.Die Dezimalvariationen für eine Zahl erhalten
Sagen wir 207 in der Box, und es läuft durch meinen Codeblock, ich möchte jede mögliche Dezimalvariation von 207 aus der Datenbank bekommen, obwohl ich genauso gut durch die anderen schauen könnte. Also, was ich tun ist, bekommen Zahlen größer als 207, aber weniger als eine Nummer darüber, es sieht ungefähr so aus:
String DecimalValue = FilterUSD.Text.ToString().Trim();
Double Deci = Convert.ToDouble(DecimalValue);
Double init = Deci;
Double init2 = init + 1;
Das gibt mir 207,50, 207,99, 207,13, usw. aus dem Backend.
Ich brauche dies für eine SQL-Anweisung später, aber das ist der wichtige Teil:
sbuilder.Append(" Amount_USD").Append(" >= ").Append("@init AND Amount_USD < @init2 ");
Wenn die sbuilder (string Builder) aufgelöst wird, sieht es so etwas wie dieses:
Select * FROM Table WHERE Amount_USD >= @init AND Amount_USD < @init2
Das funktioniert so, wie ich es erwarte, und ich bekomme jede Dezimalzahl einer gegebenen Nummer, einschließlich dieser Nummer.
Was ich brauche, ist die negative Variation. Ich bin nicht sicher, was ich falsch mache, aber die Gegenüberstellung des Codes funktioniert nicht, wenn ich versuche, es durch den SQL-Befehl zu filtern, würde es überhaupt keine Zeilen zurückgeben.
Hier ist der vollständige Code:
String DecimalValue = FilterUSD.Text.ToString().Trim();
Double Deci = Convert.ToDouble(DecimalValue);
if(Deci < 0)
{
//Negative
Double init = Deci;
Double init2 = init - 1;
sbuilder.Append(" Amount_USD").Append(" <= ").Append("@init AND Amount_USD > @init2 ");
}
else
{
//Positive, as above
}
SQL Ausgabe des Codes für negative Basen:
Select * FROM Table WHERE Amount_USD <= @init AND Amount_USD > @init2
Wo fügen Sie 'init' und' init2' als Parameter hinzu, und welche Werte haben sie zum Zeitpunkt des Hinzufügens? –
Ah, nun, sie sind Int-Datentypen und init ist gleich der angegebenen Basisnummer, und init2 ist gleich der Basis +/- 1, abhängig davon, ob die Basis negativ ist oder nicht. – Arvayne
Führen Sie das SQL in Management Studio zuerst ohne die WHERE-Klausel aus. Dann fügen Sie den ersten Teil der Klausel hinzu, führen Sie ihn erneut aus und sehen Sie sich die Ergebnisse an. Sie sollten dann in der Lage sein, (basierend auf den zurückgegebenen Daten) herauszufinden, wie das letzte Bit davon zu formulieren ist. – pinkfloydx33