INSERIMENTO VALORI IN UN CAMPO DATA DA SQL "INSERT INTO"

giovedì 02 novembre 2006 - 10.08

MarcodotnetHell Profilo | Junior Member

Ho la necessità di salvare l'ora espressa in HH:MM in un campo data/time di access da una query INSERT INTO che di seguito riporto solo in parte:



INSERT INTO INTERVENTI ( IdAzienda, CodUtente, Responsabile,Data, " & _
"ChiamataN, CodiceBene, CodCategoria, codcategoriafil, CodSpecializz," & _
"DataChiamata, OraChiamata, StatoChiamata, Richiedente, CodCdc, CodReparto," & _
"CodiceSAP, Nota1, Nota2, Nota3, NomeLinea, ...........

IIf(IsDBNull(Me.CodSpecializz), "NULL", "'" & Me.CodSpecializz & "'") & "," & IIf(IsDBNull
(DataChiamata), "NULL", "#" & DataChiamata & "#") & "," & IIf(IsDBNull(Ore), "NULL", "#" & Ore & "#") & "," &
......................

come si può vedere devo inserire la variabile Ore (definito come stringa) nel campo che si chiama Orachiamata. Io imposto la variabile ore con 10:20 ade esempio e il debug mi restituisce l'errore "quantità di dati incollata troppo grande". Spero che qualcuno mi possa indicare dove sbaglio.



Brainkiller Profilo | Guru

>come si può vedere devo inserire la variabile Ore (definito come
>stringa) nel campo che si chiama Orachiamata. Io imposto la variabile
>ore con 10:20 ade esempio e il debug mi restituisce l'errore
>"quantità di dati incollata troppo grande". Spero che qualcuno
>mi possa indicare dove sbaglio.

Ciao Marco e benvenuto.
L'errore sta alla base. Non hai mai usato le query parametriche ? (tramite l'uso di OleDbParamter ?)
Servono sia ad assolvere i problemi che lamenti sia ad aumentare sensibilmente la sicurezza della tua applicazione.

Esempio dell'uso di un parametro. Come vedi nella query al posto del valore viene messo un punto di domanda "?" e poi sotto viene aggiunto alla collection Parameters il parametro con relativo valore.

string queryString = "SELECT * FROM Table1 WHERE Field1 LIKE ?"; OleDbCommand command = new OleDbCommand(queryString, connection); command.Parameters.Add("@p1", OleDbType.Char, 3).Value = "a"; OleDbDataReader reader = command.ExecuteReader();

Prova con questo approccio e dovresti risolvere il problema della data/ora.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

MarcodotnetHell Profilo | Junior Member

Grazie mille
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5