tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
400
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    chrisfisch chrisfisch ist offline Rookie
    Registriert seit
    Jul 2010
    Beiträge
    6
    Hallo zusammen,

    hoffe mir kann jemand weiterhelfen. Habe bislang noch keine Lösung gefunden...

    Ich habe in C# (.net) eine ms-sql Server basierte Bildergalerie geschrieben. Nun möchte ich neue Bilder die z.B. jünger als 30 Tage sind mit einem Hinweis "NEU" kennzeichnen.
    In die Datenbank trage ich ebenfalls das Upload Datum ein. Habe es bislang jedoch ebenfalls nicht mit einem DateTime.Now hinbekommen.

    Habt Ihr einen Tip wie ich dieses umsetzn kann?

    Besten Dank!
     

  2. #2
    Avatar von Alexander Schuc
    Alexander Schuc Alexander Schuc ist offline admin | crazy-weasel
    tutorials.de Administrator
    Registriert seit
    Aug 2001
    Ort
    Österreich, Stmk, Graz
    Beiträge
    2.783
    Hallo.

    Wenn du 2 DateTime Objekte hast, subtrahiere diese und sieh dir die TotalDays Eigenschaft des resultierenden TimeSpan Objekts an.

    Code csharp:
    1
    2
    3
    4
    
    if ((DateTime.Now - uploadDate).TotalDays < 30)
    {
       // Neu...
    }

    lg,..
     
    With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
    Aaron Satie

    Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
    Captain Jean-Luc Picard, Stardate ~41294.5

    Tutorials.de chattet. Hier gibts auch .net Support ^^
    Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de

    (moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions

  3. #3
    chrisfisch chrisfisch ist offline Rookie
    Registriert seit
    Jul 2010
    Beiträge
    6
    Hallo.

    Besten Dank für den Code. Aber irgendwie bekomme ich das nicht ans laufen.

    Ich habe den Code eingefügt und bekomme eine Fehlermeldung...

    Code :
    1
    2
    3
    4
    
    if ((DateTime.Now - FileUploadDate).TotalDays < 30)
             {
                 Label1.Text = "NEU";
             }

    Habe ich evtl. noch etwas vergessen?

    Vielen Dank und Viele Grüsse
     

  4. #4
    Avatar von Alexander Schuc
    Alexander Schuc Alexander Schuc ist offline admin | crazy-weasel
    tutorials.de Administrator
    Registriert seit
    Aug 2001
    Ort
    Österreich, Stmk, Graz
    Beiträge
    2.783
    Wie wäre es, wenn du die Fehlermeldung nennst?
     
    With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
    Aaron Satie

    Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
    Captain Jean-Luc Picard, Stardate ~41294.5

    Tutorials.de chattet. Hier gibts auch .net Support ^^
    Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de

    (moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions

  5. #5
    chrisfisch chrisfisch ist offline Rookie
    Registriert seit
    Jul 2010
    Beiträge
    6
    Oh sorry.
    Die Meldung lautet: Der Name "FileUploadDate" ist im aktuellen Kontext nicht vorhanden.
     

  6. #6
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Dann hast du in deinem Programm keine Variable FileUpdateDate. Poste doch mal den ganzen Code.
     

  7. #7
    RedWraith RedWraith ist offline Mitglied Silber
    Registriert seit
    Aug 2007
    Beiträge
    61
    Hi !

    Ist FileUploadDate auch als DateTime Objekt instanziert ?

    Wenn du das aus der Datenbank ausgelesen hast, musst du es dann warscheinlich von Hand in ein DateTime Objekt kapseln. Ich kann mir nicht vorstellen, dass ms-sql direkt ein DateTime Objekt liefert (Schande auf mein Haupt, wenn dem doch so ist, ich kenne ms-sql so gut wie nicht.)

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    Dim sql_datum As String
    Dim dt_datum As DateTime
     
    sql_datum = "20.07.2010"
    dt_datum = DateTime.Parse(sql_datum)
     
    MsgBox((Now - dt_datum).TotalDays())

    Beim DateTime.Parse kann es noch gut sein, dass du noch Formateinstellungen oder Ländereinstellungen angeben musst, damit er das Datum auch richtig übernimmt (tt-mm-yyyy und nicht mm-tt-yyyy zum Beispiel).

    Und Sorry, falls das für dich von anfang an ersichtlicht war
     

  8. #8
    chrisfisch chrisfisch ist offline Rookie
    Registriert seit
    Jul 2010
    Beiträge
    6
    Hallo!

    Danke für die Antworten. Aber irgendwie stehe ich auf dem Schlauch....

    Hier mal der ganze Code:

    Code :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    
    protected void Page_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            String strConnString = System.Configuration.ConfigurationManager.ConnectionStrings["connString"].ConnectionString;
            string strQuery = "select * from Fotogalerie WHERE category=" + Request.QueryString["category"];
            SqlCommand cmd = new SqlCommand(strQuery);
            SqlConnection con = new SqlConnection(strConnString);
            SqlDataAdapter sda = new SqlDataAdapter();
            cmd.CommandType = CommandType.Text;
            cmd.Connection = con;
            try
            {
                con.Open();
                sda.SelectCommand = cmd;
                sda.Fill(dt);
                Fotolisting.DataSource = dt;
                Fotolisting.DataBind();
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
               
     
            finally
            {
                con.Close();
                sda.Dispose();
                con.Dispose();
            }
     
     
             if ((DateTime.Now - FileUploadDate).TotalDays < 2)
             {
                 Label1.Text = "NEU";
             }
     
        }
     

  9. #9
    RedWraith RedWraith ist offline Mitglied Silber
    Registriert seit
    Aug 2007
    Beiträge
    61
    Ähm ich nehme mal an, dass FileUploadDate der Spaltenname ist, in dem das Datum steht ?

    Also du rufst deine Bilder ab und speicherst die Ergenismenge der SQL Abfrage in der Datatable dt.
    Damit hast du aber noch nicht automatisch Zugriff auf die einzelnen Datenfelder. Du musst dt zeilenweise durchlaufen und dann für jede Zeile den Wert für FileUploadDate auslesen und verarbeiten:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
            DateTime FileUploadDate = default(DateTime);
     
            foreach (datarow r in dt.rows) 
            {
                FileUploadDate = DateTime.Parse(r("FileUploadDate").toString);
                
                if ((DateTime.Now - FileUploadDate).TotalDays < 2)
                {
                    Label1.Text = "NEU";
                }
            }

    EDIT: Der Code ist mit einem Konverter von vb .net zu c# konvertiert worden. Ist vielleicht nicht 100% richtig.
    Geändert von RedWraith (26.07.10 um 11:41 Uhr)
     

  10. #10
    chrisfisch chrisfisch ist offline Rookie
    Registriert seit
    Jul 2010
    Beiträge
    6
    Besten Dank für die Hilfe! Habs geschafft...

    Hier noch zur Vervollständigung der C# Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    DateTime FileUploadDate = default(DateTime);
     
             foreach (DataRow r in dt.Rows)
             {
                 FileUploadDate = DateTime.Parse(r["FileUploadDate"].ToString());
     
                 if ((DateTime.Now - FileUploadDate).TotalDays < 20)
                 {
     
                     Label1.Text = "Neu";
     
                 }
             }
     

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 17.04.09, 00:15
  2. Antworten: 4
    Letzter Beitrag: 06.09.07, 16:23
  3. Bildergalerie in Flash zeigt keine Bilder an
    Von firstplaya im Forum Flash Plattform
    Antworten: 5
    Letzter Beitrag: 21.03.07, 15:22
  4. PHP Bildergalerie (Bilder verlinken)
    Von bugszzk im Forum PHP
    Antworten: 4
    Letzter Beitrag: 11.02.06, 23:21
  5. Antworten: 1
    Letzter Beitrag: 23.12.04, 00:37

Stichworte