DATETIME sql

venerdì 05 gennaio 2007 - 23.51

matteo.sandri Profilo | Newbie

Buona notte a tutti,
sto provando a scrivere in una tabella di un db SQL su un campo DATETIME il codice che uso è

Dim strsql As String
Dim data As Date

data = Mid(Date.Now, 1, 8)
strsql = "INSERT INTO TABELLA (NOME,MESSAGGIO, DATA) VALUES ('" & Me.Txt_nome.Text & "','" & Me.Txt_testo.Text & "','" & data & "')"
Me.SDS_guest.InsertCommand = strsql
Me.SDS_guest.Insert()

mi da l'errore quando arriva all'insert il messaggio è:

La conversione del tipo di dati da char a datetime ha generato un valore di tipo datetime non compreso nell'intervallo dei valori consentiti.
L'istruzione è stata interrotta.

lo stesso errore me lo da anche se al posto della cariabile DATA provo a passarci DATE.NOW o provo a far passare la data per una text

freeteo Profilo | Guru

ciao,
il problema è che stai inserendo una stringa in un campo datetime (infatti il messaggio ti dice proprio di questa conversione non riuscita).
Il modo migliore, consigliato anche per evitare problemi di sicurezza classici quando fai concatenazione di stringhe per creare la stringaSQL, è usare i parametri.
Quindi il tuo codice sarebbe corretto scivero in questo modo:
strsql = "INSERT INTO TABELLA (NOME,MESSAGGIO, DATA) VALUES (@nome,@testo,@data)"
ho visto che tu hai una classe "SDS_guest" probabilemte è una "sql data source" quindi ha di sicuro l'insieme "InsertParameters" che appuntoriceve i parametri (i nomi con la chiocciola o con il "?" ) e fa la mappatura:
Me.SDS_guest.InsertParameters.Add(new SqlParameter("@nome",txtTesto.Text); Me.SDS_guest.InsertParameters.Add(new SqlParameter("@testo",txtTesto.Text); Me.SDS_guest.InsertParameters.Add(new SqlParameter("@data",DateTime.Now); Me.SDS_guest.InsertCommand = strsql Me.SDS_guest.Insert()

la strada dei parametri è sempre la piu' consigliata, e la piu' sicura...
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
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 !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5