Autor Beitrag
Vegeto
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Di 08.03.16 12:21 
Hallo,

ich habe diesen SQL Query:
ausblenden SQL-Anweisung
1:
2:
3:
SELECT [object]
FROM Table_Day
WHERE [value] between '01.03.2016 00:00:00' and '03.03.2016 00:00:00'


Wenn ich das ganze unter SQL Server Management Studio benutze, zeigt er mir das Ergebnis an welche ich möchte.
Jetzt habe ich das ganze in Visual Studio eingebaut mit Parametern:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
using (SqlCommand sqlCMD = new SqlCommand())
                {
                    sqlCMD.Connection = SQLConnection;
                    sqlCMD.CommandType = CommandType.Text;
                    SqlParameter von = new SqlParameter("@vonDatum", SqlDbType.DateTime);
                    von.Value = VonDatum;
                    SqlParameter bis = new SqlParameter("@bisDatum", SqlDbType.DateTime);
                    bis.Value = BisDatum;
                    sqlCMD.Parameters.Add(von);
                    sqlCMD.Parameters.Add(bis);

                    //sqlCMD.Parameters.AddWithValue("@vonDatum", VonDatum);
                    //sqlCMD.Parameters.AddWithValue("@bisDatum", BisDatum);

                    sqlCMD.CommandText = @"SELECT [object]
FROM Table_Day
WHERE [value] between 'vonDatum' and bisDatum'"
;
                    using (SqlDataReader sqlReder = sqlCMD.ExecuteReader())
                    {
                        while (sqlReder.Read())
                        {
                            strObjects.Add(sqlReder[0].ToString());
                        }
                    }
                }


Also wie Ihr sehen könnt habe ich es einmal mit SqlParameter versucht und mit Parameters.AddValue(). Beide geben mir die selbe Fehlermeldung aus:
Zitat:
Fehler beim Konvertieren einer Zeichenfolge in ein Datum und/oder eine Uhrzeit.


Doch ich verstehe das ganze nicht, denn ich gebe als Typ DateTime (die beiden Variablen VonDatum und BisDatum sind variablen vom Typ DateTime!) weiter. Ich habe es auch versucht als string (also VonDatum und BisDatum als Typ String doch auch dort kommt die selbe Fehlermeldung.

Ich hoffe jemand stand vor dem selben Problem und kann mir Helfen.

Liebe Größe
Vegeto
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 3743
Erhaltene Danke: 762

Win7
C++, C# (VS 2015/17)
BeitragVerfasst: Di 08.03.16 12:54 
Hallo,

du verwendest die Parameter falsch:
ausblenden C#-Quelltext
1:
sqlCMD.CommandText = @"SELECT [object] FROM Table_Day WHERE [value] BETWEEN @vonDatum AND @bisDatum";					

Der Sinn der Parameter ist ja extra, daß man sich nicht mehr um den Datentyp kümmern muß (d.h. ob mit oder ohne Anführungsstriche).

Für diesen Beitrag haben gedankt: Vegeto
Vegeto Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Di 08.03.16 13:48 
DANKE !!!

VIEL DANK.

Was für ein Dummer Fehler.

LG