Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C#] lettura e confronto da un database

    Salve a tutti.
    Sono alle prime armi.
    Vi spiego il mio problema :
    Devo confrontare una data in formato stringa con una data in un db sql server.
    Prima cosa ho convertito la mia stringa in questo modo :

    ++++++++++++++++++++++++++++++++++++++++
    CultureInfo MyCulture = new CultureInfo("it-IT");
    string dataValida = "31/12/2008";
    DateTime MyDateTime = DateTime.Parse(dataValida, MyCulture);
    ++++++++++++++++++++++++++++++++++++++++

    ora leggo dal db.
    Quindi creo il comando :

    ++++++++++++++++++++++++++++++++++++++++
    SqlCommand comm1 = new SqlCommand(
    "SELECT codice, data_validità " +
    "FROM stud_card WHERE codice = @codice ", conn);
    ++++++++++++++++++++++++++++++++++++++++

    Inserisco i dati :
    ++++++++++++++++++++++++++++++++++++++++
    comm1.Parameters.Add("@codice", SqlDbType.Int);
    comm1.Parameters["@codice"].Value = codice;
    comm1.Parameters.Add("@MyDataTime", SqlDbType.DateTime);
    comm1.Parameters["@MyDataTime"].Value = MyDateTime;
    ++++++++++++++++++++++++++++++++++++++++

    apro la connessione:
    ++++++++++++++++++++++++++++++++++++++++
    try
    {
    conn.Open();
    SqlDataReader reader1 = comm1.ExecuteReader();

    while (reader1.Read())
    if(reader1["data_validità"] == MyDateTime)
    { // Fai qualcosa... }

    catch (Exception e) { Label1.Text += "
    " + e; }
    ++++++++++++++++++++++++++++++++++++++++

    Il problema mio è che quando faccio il confronto <if(reader1["data_validità"] == MyDateTime)>
    mi da problemi con la conversione...
    onestamente ci sto sbattendo la testa ma non ne arrivo a capo!!
    Qualcuno saprebbe dirmi la procedura giusta??

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    1) C# ha il suo subforum -> Visualbasic e net framework
    2) Il codice va inserito SEMPRE tra i tag [code] o [php] come ben descritto sul regolamento del forum
    3) if(reader1["data_validità"] == MyDateTime) non poù funzionare perchè il reader ritorna un object e la data è un datetime.. prova castando entrambi a stringa (con il tostring) o parsando reader1["data_validità"].ToString() a datetime

  3. #3
    Qualche ramanzina in più??
    prova con il cast!!

    Cmq ho dato un occhio al tuo blog, sembra interessante!!

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    [ot] ormai il mio blog è abbandonato da tempo.. non c'è più nè il tempo nè la voglia.. grazie cmq[/ot]

    Più che ramanzine sono le regole base descritte dal regolamento del forum.. non le ho scritte io..

    Fai un tentativo con i cast.. sappi cmq che i problemi con le date nei db sql server è risaputo da tempo.. io risolvevo con un campo bigint dove mettevo i millisecondi della data.

  5. #5
    ho provato con il cast ma nulla di fatto.

    il guaio è che io sto traducendo una applicazione da Vb .net a C# ed in Vb questo problema lo risolsi in maniera molto semplice invocando una funzione :
    Codice PHP:
    Private Function ToDateTime(ByVal dataGG_MM_AAAA As String) As DateTime
            Dim myCultureInfo 
    As New System.Globalization.CultureInfo("it-IT"True)
            
    Dim formato As String "dd/MM/yyyy"
            
    Return System.DateTime.ParseExact(dataGG_MM_AAAAformatomyCultureInfo)
        
    End Function 
    poi
    Codice PHP:
    Dim dataValida As String
    dataValida 
    "31/12/2008"
    Dim data As Date
    data 
    ToDateTime(dataValida
    All'atto del confronto era una banalità :
    Codice PHP:
    If reader1.Item("data_validità") = data Then
    Label2
    .Text "La card ha valenza fino al " reader1.Item("data_validità")
    reader1.Close()
    conn.Close() 
    con C# non me lo fa fare.

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Ho spostato la discussione nel forum corretto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Grazie

  8. #8
    Non ci sono riuscito con il cast....HELP ME!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.