Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Miko_d
    Registrato dal
    May 2005
    Messaggi
    61

    [VB.NET] Campi vuoti con OleDbConnection

    Ho una form che contiene i dati di alcuni clienti, ragione sociale, indirizzo, tel ecc. e potrebbe capitare che uno di questi dati per un cliente non sia conosciuto quindi nella tabella clienti quel campo sia vuoto, il problema e che se nella select che popola la form viene incontrato un campo vuoto mi da questo errore:

    codice:
    An unhandled exception of type 'System.InvalidCastException' occurred in microsoft.visualbasic.dll
    
    Additional information: Cast from type 'DBNull' to type 'String' is not valid.
    Il db che uso è Access 2000 ed il codice per connettermi al db è questo:

    codice:
    Me.OleDbConnection1.Open()
    
    Me.OleDbCommand1.CommandText = "update clienti inner join riferimenti " & _
                                            "on clienti.idRif = riferimenti.id " & _
                                            "set clienti.settore = '" & TextBoxSettore.Text & _
                                            "', clienti.indirizzo = '" & TextBoxIndirizzo.Text & _
                                            "', clienti.cap = '" & TextBoxCap.Text & _
                                            "', clienti.comune = '" & TextBoxComune.Text & _
                                            "', clienti.prov = '" & TextBoxProv.Text & _
                                            "', clienti.tel = '" & TextBoxTel.Text & _
                                            "', clienti.fax = '" & TextBoxFax.Text & _
                                            "', clienti.cell = '" & TextBoxCell.Text & _
                                            "', clienti.mail = '" & TextBoxMail.Text & _
                                            "', clienti.sitoWeb = '" & TextBoxSitoWeb.Text & _
                                            "', clienti.piocf = '" & TextBoxPiocf.Text & _
                                            "', riferimenti.nome = '" & TextBoxRif.Text & _
                                            "', riferimenti.qualifica = '" & TextBoxQualificaRif.Text & _
                                            "', riferimenti.indirizzo = '" & TextBoxindirizzoRif.Text & _
                                            "', riferimenti.cap = '" & TextBoxCapRif.Text & _
                                            "', riferimenti.comune = '" & TextBoxComuneRif.Text & _
                                            "', riferimenti.prov = '" & TextBoxProvRif.Text & _
                                            "', riferimenti.tel = '" & TextBoxTelRif.Text & _
                                            "', riferimenti.fax = '" & TextBoxFaxRif.Text & _
                                            "', riferimenti.cell = '" & TextBoxCellRif.Text & _
                                            "', riferimenti.mail = '" & TextBoxMailRif.Text & _
                                            "' where clienti.id = " & TextBoxIdCliente.Text
    
    Me.OleDbCommand1.Connection = Me.OleDbConnection1
    
    OleDbCommand1.ExecuteNonQuery()
    
    Me.OleDbConnection1.Close()

  2. #2
    Beh prima cosa ho bisogno della Select per capire cosa sbagli.
    In secondo luogo, quando fai un UPDATE cosi' ti conviene sempre inserire il tutto in un ciclo Try Catch altrimenti come fai a sapere se i parametri sono corretti o no???


  3. #3

    Re: [VB.NET] Campi vuoti con OleDbConnection

    Originariamente inviato da Miko_d
    ...il problema e che se nella select che popola la form viene incontrato un campo vuoto ...
    Il db che uso è Access 2000 ed il codice per connettermi al db è questo
    Tiro ad indovinare che usi un datareader giusto? Quando si leggono i dati con un datareader e' sempre buona regola fare un test se il valore non e' dbnull nel seguente es. assegno una stringa vuota se dal db viene dbnull
    codice:
    If IsDBNull(dr(dr.GetOrdinal("nomecampo"))) Then tuatextbox.text = "" Else tuatextbox.text = dr.GetString(dr.GetOrdinal("nomecampo"))
    in piu', guardando il codice di update (che probab hai sbagliato a postare) ti consiglio di imparare ad usare i parametri nelle query e di non "appiccicare" nella stringa sql i valori.
    Saluti a tutti
    Riccardo

  4. #4
    Sicuramente utilizzare i parametri e un bel try è buona norma.
    Concordo pienamente!!


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.