C# Informix-Parameter im c# wpf SELECT

speedsam

Cadet 2nd Year
Registriert
Sep. 2014
Beiträge
22
Guten Tag,

ich habe ein Problem bei meinen SELECT Statement und deren IfxParameter.
hier der Code.

er nimmt mir die Parameter nicht , wenn ichim Select anstatt @TagDatum , '08/08/2014' eingeb, dann kommen daten herraus, so aber nicht.

normalerweise heißt es :
cmd.Parameters.AddWithValue , es gibt aber nur Add...
Code:
try
           {
               ifx.Open();
               string sql;
               IfxCommand cmd = null;             

               sql =
                "select tag, sum(betrag) *(-1) as Umsatz_ohne_Gutschrift,"+
                "("+
                "select sum(betrag) * 2"+
                "from buchungen"+
                "where verwendungszweck like '%utschrift%'"+
                "AND DATE(buchungs_zeit) = DATE(history.tag)"+
                ")"+
                "FROM history"+
                "where ereignistyp_id = 102"+
                "AND tag >= @TagDatum" + //<------------------
                "AND tag < @TagEndDatum" +//<-----------------
                "group by tag"+
                "order by tag";

               cmd = new IfxCommand(sql, ifx);
               cmd.Parameters.Add("@TagDatum", TagDatum); //<----------------------
               cmd.Parameters.Add("@TagEndDatum", TagEndDatum);//<-----------------
               MessageBox.Show("kommando verpackt");

               using (IfxDataReader reader = cmd.ExecuteReader())
               {
                   while (reader.Read())
                   {
                       DateTime? TagesDatum = (!reader.IsDBNull(0) ? reader.GetDateTime(0) : (DateTime?)null);
                       Decimal? Umsatz = (!reader.IsDBNull(1) ? reader.GetDecimal(1) : (Decimal?)null);
                       Decimal? Gutschrift = (!reader.IsDBNull(2) ? reader.GetDecimal(2) : (Decimal?)null);   
                       g.Add(new GesamtUmsatz(TagesDatum, Umsatz, Gutschrift));                
                   }
               }
               ifx.Close();

Kann mir jemand weiterhelfen?
 
Hallo speedsam!

Was heißt denn "nicht annehmen"? Gibt es eine Exception?

Setze einen Breakpoint an einer geeigneten Stelle und sieh dir an, wie dein TagDatum aussieht. Ich vermute mal ins Blaue, dass da noch eine Uhrzeit dran hängt. Z.B. 00:00:00. Wenn das stimmt und deine Datenbank nur das reine Datum will, dann kannst du die Uhrzeit entfernen mit der Methode ToShortDateString() für DateTime-Objekte.


Edit:
Irgendwie sieht die Verwendung deiner Add auch nicht richtig aus. Beispiel, das fubktioniert:

Code:
command.Parameters.Add("@ID", SqlDbType.Int);
command.Parameters["@ID"].Value = customerID;
 
Zuletzt bearbeitet:
habe es einfach mit stringverkettung gemacht, ohne Parameter.

kann geschloßen werden
 

Ähnliche Themen

Zurück
Oben