Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Campi non obbligatori

  1. #1

    Campi non obbligatori

    Ho un problema con un form per la modifica dei dati di un database.

    In una pagina carico un DataGrid con un elenco di documenti inseriti in un DB.

    Richiamando il singolo documento devo dare la possibilità di variare le informazioni, ma al momento di registrare le modifiche mi da il seguente errore:

    'Stringa non riconosciuta come valore DateTime valido'

    Il campo è un campo Data che non è obbligatorio e quando viene lasciato vuoto mi da errore.

    Questo è il codice della registrazione dei dati

    myConn.Open
    strSql = "UPDATE Documenti SET Descrizione = @Descrizione, [Data] = @Data, Numero = @Numero, AnnoRif = @AnnoRif, Importo = @Importo, [Note] = @Note, Scadenza = @Scadenza, Consegna = @Consegna WHERE IdDocumento = " & Request.QueryString("id")

    myCmd = New OleDbCommand( strSql, myConn )

    myCmd.Parameters.Add( New OleDbParameter( "@Descrizione", OleDbType.VarChar )).Value = txDescrizione.Text
    myCmd.Parameters.Add( New OleDbParameter( "@Data", OleDbType.Date )).Value = txData.Text
    myCmd.Parameters.Add( New OleDbParameter( "@Numero", OleDbType.VarChar )).Value = txNumero.Text
    myCmd.Parameters.Add( New OleDbParameter( "@AnnoRif", OleDbType.Integer )).Value = txAnnoRif.Text
    myCmd.Parameters.Add( New OleDbParameter( "@Importo", OleDbType.Currency )).Value = txImporto.Text
    myCmd.Parameters.Add( New OleDbParameter( "@Note", OleDbType.VarChar )).Value = txNote.Text
    myCmd.Parameters.Add( New OleDbParameter( "@Scadenza", OleDbType.Date )).Value = txScadenza.Text
    myCmd.Parameters.Add( New OleDbParameter( "@Consegna", OleDbType.Date )).Value = txConsegna.Text

    myCmd.ExecuteNonQuery()
    myConn.Close

    Il campo dove da errore è 'Consegna'

    Saluti

  2. #2
    per sapere se dentro una variabile di testo e' presente una data valida, puoi usare la funzione parse es.
    codice:
    date.parse(tuatextbox.text)
    la funzione restituisce un oggetto date valido se la stringa e' ok altrimenti solleva una eccezione. Quindi dovresti gestire, nel caso venga sollevata una eccezione, l'assegnazione al parametro di una data nulla.
    Saluti a tutti
    Riccardo

  3. #3
    ok, so di dover gestire un campo data nullo.

    Come faccio?

    L'unico sistema che ho trovato è escludere il campo dall'istruzione Sql, non esiste una soluzione un po' più rapida e meno dispendiosa in termini di codice?

    Grazie!

  4. #4
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    usa il datetime.tryparse,leggi la documentazione e vedrai che è + veloce.

  5. #5
    Originariamente inviato da GiulioRoma80
    Come faccio?
    in parole semplici...
    se la data e' valida
    tuoparametro.value = datavalida
    altrimenti
    tuoparametro.value = datanulla
    fine condizione

    la datanulla decidi tu quale possa essere es. 01/01/1900
    Saluti a tutti
    Riccardo

  6. #6

    Soluzione alternativa

    Mi state proponendo entrambi di gestire io l'eccezione della data nulla.
    Nessun problema se il campo da gestire è uno solo, ma in caso siano 4/5 o più campi da gestire con questo sistema comincia a diventare abbastanza noioso scrivere codice per gestire tutte le eccezioni.

    Oltretutto il mio campo data deve rimanere Null e non deve contenere alcuna data.

    Possibile che .NET non gestisca autonomamente questo tipo di problema?

    Grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.