Announcement

Collapse
No announcement yet.

Datumskonvertierung bei MySqlDataread???

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datumskonvertierung bei MySqlDataread???

    Hi, ich schon wieder

    habe folgendes Problem:
    ich lese über einen MySqlDataReader ein Datum aus einer MySql Tabelle aus.
    Code:
    result.Add(dataread.GetMySqlDateTime("GueltigAb"));
    In der Tabelle ist die Formatierung für Datumsangaben: "jjjj-mm-dd hh:mm:ss" ( ist ja bestimmt bekannt )

    Das Problem ist das anscheinend eine interne Konvertierung vonstatten geht denn wenn ich es ausgebe sieht es wie folgt aus: "dd.mm.jjjj hh:mm:ss"

    Jetzt kann ich natürlich nicht das Datum mit dem aus der Datenbank vergleichen, und das ist ganz schlecht.....

    Hilfe...

  • #2
    Das ist völlig daneben:
    In der Tabelle ist die Formatierung für Datumsangaben: "jjjj-mm-dd hh:mm:ss" ( ist ja bestimmt bekannt )
    So etwas ist ganz und gar nicht bekannt.

    Du unterliegst anscheinend einem generellen Irrtum: Ein Datum ist ein Datum ist ein Datum. Wie es als Zeichenfolge dargestellt wurde, hat damit nichts, aber auch gar nichts zu tun. Der MySqlDataReader liefert einen DateTime-Wert, der wird genauso angezeigt, wie es dein System (nämlich ein deutscher PC mit deutschem .NET) vorsieht.

    Wo willst du zwei Datumsangaben vergleichen? Über WHERE in einem SELECT? Dann benutze unbedingt Parameter - siehe [Artikelserie] Parameter von SQL Befehlen - und es wird funktionieren.

    Gruß Jürgen

    PS. Die Datenbank-Verarbeitung hat ein eigenes Unterforum, ich verschiebe es deshalb.

    Comment


    • #3
      hmm, also mein Vergleich ist in einem DELETE
      Code:
       for (int e = 0; e < result2.Count; e++)
                  {
                      MessageBox.Show("" + result1[e] + "   " + result2[e]);
                      MySqlCommand sqlcom = new MySqlCommand("DELETE FROM adsusdetail WHERE GueltigAb <> \'"+result2[e]+"\' AND Steuercode = \'"+result1[e]+"\'", con);
                      sqlcom.ExecuteNonQuery();
                  }
      in der Message Box hab ich mir das mal angeschaut weil der immer alle Daten gelöscht hat und nicht nur die wo das Datum <> result2[e], und da ist mir aufgefallen das das Datum anders aussieht und da dacht ich mir das es daran liegt

      *dachte das C# Forum wäre das sinnvollste weil ich ja damit programmiere....

      Comment


      • #4
        also bis zum ersten Wert funktioniert es

        aber:

        Code:
        for (int i = 0; i <= result1.Count; i++)
        {
                   cmd.Parameters.AddWithValue("Steuercode", result1[i]);
                   cmd.Parameters.AddWithValue("GueltigAb", Convert.ToDateTime(result2[i]));
        
                   cmd.ExecuteNonQuery();
        }
        da kommt der Fehler das der Parameter bereits deklariert wurde, gibts eine möglichkeit die mehrfach zu deklarieren? Da steht zwar auch was davon aber das versteh ich nich wirklich...

        *EDIT
        und das hat sich hiemit auch erledigt ^^
        Code:
        cmd.Parameters.AddWithValue("Steuercode", result1[0]);
        cmd.Parameters.AddWithValue("GueltigAb", Convert.ToDateTime(result2[0]));
        cmd.ExecuteNonQuery();
        for (int i = 1; i < result1.Count; i++)
        {
               cmd.Parameters["Steuercode"].Value = result1[i];
               cmd.Parameters["GueltigAb"].Value = result2[i];
               cmd.ExecuteNonQuery();
        }
        Zuletzt editiert von emerel; 08.03.2010, 10:38.

        Comment

        Working...
        X