Autor Beitrag
tomycat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Mo 02.11.15 22:15 
Hallo,
ich möchte gerne zwei mal BETWEEN nehmen....
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
s = "select * from artikel.rechnunginhalt WHERE datum BETWEEN " + int.Parse(textBox2.Text) + " AND " + int.Parse(textBox3.Text);

s += " AND geld BETWEEN 1 AND 100";

s += ";";


2.Frage: geld ist varchar(25) in meiner mysql.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
s = "select * from artikel.rechnunginhalt WHERE datum BETWEEN " + int.Parse(textBox2.Text) + " AND " + int.Parse(textBox3.Text);

s += " AND geld = ";
s += textBox5.Text; // 1,19 geht nicht !!!

s += ";";

Es kommt 19 geht nicht

Moderiert von user profile iconTh69: Code- durch C#-Tags ersetzt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 02.11.15 22:36 
1.) Wenn möglich immer Parameter verwenden. Kein String konkatenieren wie du es machst. Das nimmt dir das saubere Formatieren der Werte ab. (Dezimalzahlen mit Punkt oder Komma?, Welches Format braucht man für ein Datum? etc.)

2.) Wenn Geld ein varchar ist dann gehören da Quotes um den Text sonst kann die Datenbank den Text nicht von einem Spaltennamen unterscheiden. Auch das Problem würde nicht existieren wenn du Parameter verwendest. Dann ist klar das ein Wert gemeint ist und kein Spaltenname.

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Mo 02.11.15 22:46 
ok,
zu Frage 1,(ohne Komma/Punkt)

Ziel:

Zeilennummer 1 bis 30 und Geld 20 bis 30

zu Frage 2, Ich nutze Komma und es geht um einen Geldbetrag.

Wie meinst du das mit Parameter?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 02.11.15 22:51 
Zitat:
Zeilennummer 1 bis 30 und Geld 20 bis 30


Das sollte so funktionieren können wie du es zeigst. Möglicherweise möchte mysql hier zwingend Klammern für den "Feld between value1 and value2" Ausdruck.
Aber du hast es doch bestimmt ausprobiert oder?

Zitat:
Wie meinst du das mit Parameter?


Klick auf den Link im Beitrag.

Für diesen Beitrag haben gedankt: tomycat