Pb insertion date dans une base de données SQL Server

leusha 11 Messages postés samedi 22 novembre 2003Date d'inscription 27 juillet 2006 Dernière intervention - 27 juil. 2006 à 04:11 - Dernière réponse : leusha 11 Messages postés samedi 22 novembre 2003Date d'inscription 27 juillet 2006 Dernière intervention
- 27 juil. 2006 à 16:22
Bonjour.

<hr size="2" width="100%" />
        Dim todayDate As DateTime = DateTime.Now
        Dim sTodayDate As String

        sTodayDate = todayDate.ToString("d")
        Response.Write(sTodayDate)

        sSQL = "INSERT INTO [CASE_FILE](CASE_FILE_Code, COMPANY_CODE, SEVERITY_Code,     PRODUCT_Code, STATUS_Code, INGINEER_Code, CASE_FILE_OpeningDate, CASE_FILE_ClosingDate, CASE_FILE_TreatmentTime, CASE_FILE_ContactFirstName, CASE_FILE_ContactLastName, CASE_FILE_ContactPhoneNo, CASE_FILE_ContactEmail, CASE_FILE_Title, CASE_FILE_Description, CASE_FILE_ProductVersion)" _
        & " VALUES('4','" & Session("company") & "','" & DDL_CaseFileSeverity.SelectedValue & "','" & DDL_CaseFileProduct.SelectedValue & "','1','1','" & sTodayDate & "','','','" & TB_ContactFirstName.Text & "','" & TB_ContactLastName.Text & "','" & TB_ContactPhoneNo.Text & "','" & TB_ContactEMail.Text & "','" & TB_CaseFileTitle.Text & "','" & TB_CaseFileDetails.Text & "','" & TB_CaseFileMV.Text & "')"

<hr size="2" width="100%" />
Voila j'essaye d'insérer une date formatée dans un champs de type DateTime dans SQL Server mais c'est 01/01/1900 qui est inséré. J'ai testé ma variable avec un response.write(sTodayDate) et dans ce cas la date est bonne. Je ne comprends pas. J'avoue en avoir un peu marre là , ça fait un moment que je galère.

Merci de votre aide
Afficher la suite 

4 réponses

Répondre au sujet
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 27 juil. 2006 à 10:27
0
Utile
Bonjour,


utilise les procédures stockées qui fera automatiquement la conversion entre ton champ datetime et le type datetime et cela évite aussi les requetes de type sql injection ...





<hr />

Cyril - MVS - MCP
Commenter la réponse de jesusonline
cs_Nurgle 1648 Messages postés samedi 6 novembre 2004Date d'inscription 28 avril 2011 Dernière intervention - 27 juil. 2006 à 11:14
0
Utile
Bonjour, je ne suis pas tout à fait d'accord avec Cyril cette fois-ci  :

Que tu utilises ou pas les Procédures Stockées, c'est plutôt l'utilisation des Parameters qui t'évite les injections SQL et te font les conversions de types automatiquement.
Cf cet article.

Si tu peux, utilise à la fois les procédures stockées et les Parameters, c'est plus propre
Sinon, utilise uniquement les Parameters, ça résoudra tout de même ton problème...

A++



<hr width="100%" size="2" />
Nurgle (Antoine)
Commenter la réponse de cs_Nurgle
cs_Yopyop 586 Messages postés lundi 7 janvier 2002Date d'inscription 10 février 2010 Dernière intervention - 27 juil. 2006 à 11:16
0
Utile
re,


si tu veux juste la date (sans l'heure) tu peux utiliser



cast('" & sTodayDate.Month & "." & sTodayDate.Day & "." & sTodayDate.Year & "' as smalldatetime)





ta requête adaptée donne:

 sSQL = "INSERT INTO [CASE_FILE](CASE_FILE_Code, COMPANY_CODE, SEVERITY_Code,     PRODUCT_Code, STATUS_Code, INGINEER_Code, CASE_FILE_OpeningDate, CASE_FILE_ClosingDate, CASE_FILE_TreatmentTime, CASE_FILE_ContactFirstName, CASE_FILE_ContactLastName, CASE_FILE_ContactPhoneNo, CASE_FILE_ContactEmail, CASE_FILE_Title, CASE_FILE_Description, CASE_FILE_ProductVersion)" _
        & " VALUES('4','" & Session("company") & "','" & DDL_CaseFileSeverity.SelectedValue & "','" & DDL_CaseFileProduct.SelectedValue & "','1','1',
cast('" & sTodayDate.Month & "." & sTodayDate.Day & "." & sTodayDate.Year & "' as smalldatetime)
,'','','" & TB_ContactFirstName.Text & "','" & TB_ContactLastName.Text & "','" & TB_ContactPhoneNo.Text & "','" & TB_ContactEMail.Text & "','" & TB_CaseFileTitle.Text & "','" & TB_CaseFileDetails.Text & "','" & TB_CaseFileMV.Text & "')"

yopyop
Commenter la réponse de cs_Yopyop
leusha 11 Messages postés samedi 22 novembre 2003Date d'inscription 27 juillet 2006 Dernière intervention - 27 juil. 2006 à 16:22
0
Utile
Merci à tous les trois. Pour le moment, j'ai utilisé la solution de yopyop mais je vais me pencher sur les solutions de jesusonline et nurgle à plus long terme. En tout cas merci beaucoup :)
Commenter la réponse de leusha

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.