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
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Data e ora
lunedì 24 gennaio 2011 - 18.33
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 3.5
|
Windows XP
|
Visual Studio 2008
|
SQL Server 2005
Zagor60
Profilo
| Junior Member
159
messaggi | Data Invio:
lun 24 gen 2011 - 18:33
Salve,
ho un campo con data e ora (es. 25/01/2010 18.00) formattato in una tabella come tipo "datetime" , quando salvo i dati in una stored procedure, mi viene dato il seguente errore "Errore durante la conversione del tipo di dati da nvarchar a datetime" .
Come deve essere convertito nella stored?
Gli altri compi che hanno solo la data funzionano normalmente.
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 24 gen 2011 - 18:58
>Salve,
ciao
>ho un campo con data e ora (es. 25/01/2010 18.00) formattato
>in una tabella come tipo "datetime" , quando salvo i dati in
>una stored procedure, mi viene dato il seguente errore "Errore
>durante la conversione del tipo di dati da nvarchar a datetime".
>Come deve essere convertito nella stored?
il parametro della stored procedure di che tipo è? Spero datetime.
Chi passa il dato alla chiamata? Sei in .net? Usi quindi ado.net?
di che tipo è la variabile che mappa il parametro?
--
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
Zagor60
Profilo
| Junior Member
159
messaggi | Data Invio:
lun 24 gen 2011 - 19:08
Ciao
Esatto nella store è datetime, uso vb.net e uso la stringa sqlconnection
di che tipo è la variabile che mappa il parametro? non capisco puoi formularmi la domanda in altra maniera?
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 24 gen 2011 - 20:47
>Esatto nella store è datetime, uso vb.net e uso la stringa sqlconnection
>di che tipo è la variabile che mappa il parametro? non capisco
>puoi formularmi la domanda in altra maniera?
Se il parametro di input della stored procedure è datetime, allora quando definisci l'oggetto SqlCommand parametrico dovresti definire il parametro con quel data type (sempre che tu stia utilizzando tale oggetto
).
Qui trovi iun esempio di codice di Andrea Zani:
http://groups.google.com/group/microsoft.public.it.dotnet.asp/msg/fe79b908b3a469b7
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 25 gen 2011 - 01:16
>Esatto nella store è datetime, uso vb.net e uso la stringa sqlconnection
>di che tipo è la variabile che mappa il parametro? non capisco
>puoi formularmi la domanda in altra maniera?
ok, pubblica la parte della dichiarazione del parametro.
Se non fai uso della collection parameters ma concateni le stringhe stai sbagliando approccio per due motivi fondamentali:
- incorri in attacchi di tipo sql injection
- non usi le query parametriche e quindi sei legato al formato delle stringhe, cosa non buona quando puoi usare i data type corretti
Detto questo, dovresti seguire l'esempio proposto da Lorenzo nel post precedente, ma non usare quel metodo che sarà presto obsoleto.
Utilizza invece il metodo AddWithValue:
http://msdn.microsoft.com/it-it/library/system.data.sqlclient.sqlparametercollection.addwithvalue.aspx
--
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
Zagor60
Profilo
| Junior Member
159
messaggi | Data Invio:
mar 25 gen 2011 - 08:31
Salve,
Risolto il problema così:
Classe formattazione
Case TipoFor.Data 'Data
Return DateTime.Parse(valore).ToString("dd/MM/yyyy")
Case TipoFor.datatime 'DataTime
Return DateTime.Parse(valore).ToString("dd/MM/yyyy HH.mm")
--------------------------------------
di seguito parte dei dati in vb da inserire nella stored: PRIMA
txtdataInizio.Text = Formatta(txtdataInizio.Text, TipoFor.datatime)
cmdins.Parameters.AddWithValue("@data_inizio", txtdataInizio.Text).
DOPO:
txtdataInizio.Text = Formatta(txtdataInizio.Text, TipoFor.datatime)
cmdins.Parameters.AddWithValue("@data_inizio", cdate(txtdataInizio.Text)) <---- mettendo CDate
-----------------------
di seguito parte della stored in sql server:
@data_inizio datetime ,
INSERT INTO TABVIAGGI
[data_inizio]......
VALUES @data_inizio....
Grazie
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 !