Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
...ancora problemi con la conversione delle date.....
giovedì 18 novembre 2010 - 13.55
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
mauri1961
Profilo
| Senior Member
218
messaggi | Data Invio:
gio 18 nov 2010 - 13:55
Pensavo di avere risolto il problema della conversione delle date su un sqlserver remoto in lingua inglese e invece ho ancora problemi.
l'errore:
conversion failed after converting date and/or time from character string.
data in textbox gg/mm/aaaa
data su db yyyy-mm-gg
Questo errore mi compariva in sede di aggiornamento su una data selecteddate.tostring
Grazie al Vs. aiuto avevo risolto aggiungendo (yyyymmdd). Ora però ho dovuto levare quel tipo di data (non piaceva il calendarietto) e ho un textbox (in realtà sono tre) con la data definita comunica.text
Risultato...di nuovo lo stesso errore.
Premetto che mi è stato consigliato di cambiare la lingua su sqlserver ma avendo un'altra applicazione che necessita di tale lingua temo di creare ancora più danni.
Nel dettaglio ecco le istruzioni incriminate:
strsql = "insert into notifiche_01(not_comunicazione, not_opera, not_indirizzo, not_localita, not_committente, not_comm_cf, not_responsabile, not_resp_cf, not_coord1, not_cor1_cf, not_inizio, not_fine, not_impresa, not_impresa_noniscritta, not_impr_cf, not_comune, not_importo)" & _
"values ('" & comunica.Text & "', '" & ubicazione.Text & "', '" & indirizzo.Text & "', '" & comune.SelectedValue & "', '" & committente.Text & "', '" & comm_cf.Text & "', '" & responsabile.Text & "', '" & resp_cf.Text & "', '" & coordinatore.Text & "', '" & coord_cf.Text & "', '" & dataini.Text & "', '" & datafin.Text & "', '" & impresa.SelectedValue & "', '" & impresanoniscritta.Text & "', '" & partitaiva.Text & "', '" & comunesede.Text & "', '" & CInt(importo.Text) & "')"
stessa cosa per l'update...
Grazie....
Maurizio
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 18 nov 2010 - 14:31
>Premetto che mi è stato consigliato di cambiare la lingua su
>sqlserver ma avendo un'altra applicazione che necessita di tale
>lingua temo di creare ancora più danni.
no... non è un rimedio
>stessa cosa per l'update...
prendi il text e usa la DateTime.ParseExact, definendo nel secondo parametro il formato che ti aspetti in lettura.
Ulteriori info qui:
http://msdn.microsoft.com/it-it/library/w2sa9yss
(v=VS.80).aspx
>Grazie....
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
mauri1961
Profilo
| Senior Member
218
messaggi | Data Invio:
gio 18 nov 2010 - 14:41
quindi il campo text (es. comunica.text) lo devo convertire con la datetime.parseexact da gg/mm/aaaa a yyyy-mm-dd come nel database e devo mettere l'istruzione a precedere l'insert o l'update?
Ciao, Maurizio
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 18 nov 2010 - 14:57
>quindi il campo text (es. comunica.text) lo devo convertire con
>la datetime.parseexact da gg/mm/aaaa a yyyy-mm-dd come nel database
quello che vedi nel database è solo un formato, uno stile.. definito dalla culture che hai in base al client che legge il dato.
Con la ParseExact leggi il testo dalla textbox in un modo che accetti solo tu (ad esempio gg/mm/aaaa) e quindi il secondo parametro sarà "dd/mm/yyyy" e se il formato non viene correttamente letto, lanci un'eccezione per gestire l'errore.
Una volta letto il campo in maniera corretta, utilizza le query parametriche:
sql = "INSERT INTO Tabella (campo1, campo2) VALUES (@param1, @param2)";
e poi nell'oggetto command che gestisce il comando aggiungi i parametri con l'addwithvalue:
cmd.Parameters.AddWithValue("@param1", campo_data_confertito);
e poi fai un bell'ExecuteNonQuery().
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
mauri1961
Profilo
| Senior Member
218
messaggi | Data Invio:
gio 18 nov 2010 - 15:25
mi scuso per non aver risposto prima, ma da ieri sono stato impegnato in altre problematiche e solo ora sono riuscito a mettere le mani sul codice.
Ho cercato di fare quanto suggerito, penso di avere capito il problema ma mi segnala alcuni errori in compilazione, mi scuso in anticipo perchè probabilmente gli errori sono dovuti alla mia scarsa pratica.
Questo è il codice che riguarda la parte di insert:
If operazione.Text = "INSERIMENTO" Then
Dim datestring As String
Dim result As Date
result = "yyyy-mm-dd"
datestring = comunica.Text
Dim provider As Cultureinfo = Cultureinfo.Invariantculture
DateTime.ParseExact(datestring, result, provider)
Dim datestring2 As String
Dim result2 As Date
result2 = "yyyy-mm-dd"
datestring2 = dataini.Text
DateTime.ParseExact(datestring2, result2, provider)
Dim datestring3 As String
Dim result3 As Date
result3 = "yyyy-mm-dd"
datestring3 = datafin.Text
DateTime.ParseExact(datestring3, result3, provider)
strsql = "insert into notifiche_01(not_comunicazione, not_opera, not_indirizzo, not_localita, not_committente, not_comm_cf, not_responsabile, not_resp_cf, not_coord1, not_cor1_cf, not_inizio, not_fine, not_impresa, not_impresa_noniscritta, not_impr_cf, not_comune, not_importo)" & _
"values (@comunica, '" & indirizzo.Text & "', '" & comune.SelectedValue & "', '" & committente.Text & "', '" & comm_cf.Text & "', '" & responsabile.Text & "', '" & resp_cf.Text & "', '" & coordinatore.Text & "', '" & coord_cf.Text & "', @dataini, @datafin, '" & impresa.SelectedValue & "', '" & impresanoniscritta.Text & "', '" & partitaiva.Text & "', '" & comunesede.Text & "', '" & CInt(importo.Text) & "')"
strdiv = "RECORD INSERITO CORRETTAMENTE <br /><a href='PAGEINI.aspx'>CLICCARE QUI PER TORNARE AL MENU</a>"
End If
If operazione.Text = "CANCELLAZIONE" Then
strsql = "delete from notifiche_01 where not_opera=" & ubicazione.Text & " "
strdiv = "Record eliminato correttamente. <br /><a href='notprel.aspx'>Ritorna</a>"
End If
conn = New SqlConnection(strconn)
command = New SqlCommand(strsql, conn)
command.Parameters.AddWithValue("@comunica", result)
command.Parameters.AddWithValue("@dataini", result2)
command.Parameters.AddWithValue("@datafin", result3)
command.Connection.Open()
command.ExecuteNonQuery()
command.Connection.Close()
risultato.Visible = True
risultato.InnerHtml = strdiv
form_blocco.Visible = False
Else
risultato.InnerHtml = "Form non valido"
End If
End Sub
...mi segnala errore sui tre campi result, result2, result3 che io definisco come quelli dove arriva la stringa convertita ma mi dice che sono campi non definiti
inoltre mi dice che cultureinfo non è dichiarato (manca una libreria ??).
spero cmq di aver capito il sistema ...spero...
Grazie, Maurizio
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !