Autor Beitrag
yougin66
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Di 12.10.10 12:13 
Ich wurde gerne in einem DGV ein Sortierung nach einem bestimmten Zeitraum
vornehmen, ich bekomme datei aber immer einen Fehler das der Datentyp unverträglich ist.

momentan sieht das so aus :

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
try
{
con.Open();
cmd.CommandText =
"select * from bestellung where Bestelldatum between '%" + dateTimePicker1.Text + "%' and '%" + dateTimePicker2.Text +"%' ";
//"select * from bestellung where Bestelldatum like '%" + dateTimePicker1.Text +"%'";
MessageBox.Show(cmd.CommandText); //Eintragsübersicht in MsgBox
Ausgabe();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
con.Close();


Zuletzt bearbeitet von yougin66 am Di 12.10.10 14:44, insgesamt 1-mal bearbeitet
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 12.10.10 12:17 
Benutze am besten SQL Parameter, s.a. meinen Link unter www.c-sharp-forum.de....php?p=618826#618826
yougin66 Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Di 12.10.10 13:07 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Benutze am besten SQL Parameter, s.a. meinen Link unter www.c-sharp-forum.de....php?p=618826#618826

ehm ja...
die parameter stimmen ja soweit, ich kann ja mit nur einem picker nach der auswhal filtern.
nur geht es mit between nicht, nun wäre zu klären woran das liegt?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 12.10.10 14:31 
Hallo,

ich glaube, du hast nicht verstanden, was SQL Parameter sind.
Die Datentypen sind deshalb unverträglich, weil du eine Datumsfeld mit "strings" vergleichst!

Daher lies dir mal den verlinkten Artikel dazu in Ruhe durch...
yougin66 Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Di 12.10.10 14:54 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,

ich glaube, du hast nicht verstanden, was SQL Parameter sind.
Die Datentypen sind deshalb unverträglich, weil du eine Datumsfeld mit "strings" vergleichst!

Daher lies dir mal den verlinkten Artikel dazu in Ruhe durch...


Ich finde in dem Artikel nicht wirklich was nützliches... für mein Problem.
Ein Datum kann ich vergleich das geht auch ohne probleme nur einen zeitraum zu filtern ist etwas schwieriger.
Da komme ich net so recht weiter...

aber danke...
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 12.10.10 15:17 
So verwendet man SQL Parameter:
ausblenden C#-Quelltext
1:
2:
3:
cmd.CommandText = "select * from bestellung where Bestelldatum between @VON and @BIS";
cmd.Parameters.AddWithValue("@VON", dateTimePicker1.Value);
cmd.Parameters.AddWithValue("@BIS", dateTimePicker2.Value);

Dadurch wird der Parameter als Datumswert übergeben, da "DateTimePicker.Value" ein DateTime ist.

(je nach Datenbanksystem muß man bei dem SQL-Befehl dann ':VON' anstatt '@VON' schreiben, s. Artikel -)

Für diesen Beitrag haben gedankt: yougin66
yougin66 Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Di 12.10.10 16:11 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
So verwendet man SQL Parameter:
ausblenden C#-Quelltext
1:
2:
3:
cmd.CommandText = "select * from bestellung where Bestelldatum between @VON and @BIS";
cmd.Parameters.AddWithValue("@VON", dateTimePicker1.Value);
cmd.Parameters.AddWithValue("@BIS", dateTimePicker2.Value);

Dadurch wird der Parameter als Datumswert übergeben, da "DateTimePicker.Value" ein DateTime ist.

(je nach Datenbanksystem muß man bei dem SQL-Befehl dann ':VON' anstatt '@VON' schreiben, s. Artikel -)


Danke passt nun
man muss nur die beiden picker einmal benutzt haben damit er auch richtig filtert!