Réponse acceptée !
Bonjour,
Je ne suis pas certain d'avoir bien compris ton problème... mais voilà mes réponses :
Un serveur SQL ne stocke pas une date sous la forme JJ/MM/AAAA ou MM/JJ/AAAA ou n'importe quel autre format, mais sous la forme d'un nombre. Sous SqlServeur, il me semble que c'est un float et qu'il représente le nombre de millisecondes écoulées depuis le 1er janvier 1900 (à confirmer).
Ensuite, c'est quand tu installes ton serveur que tu précises comment tu veux que ton serveur interprète et affiche les chaines de caractères qui représentent une date. Si tu lui dis que c'est 'MM/JJ/AAAA', il faut toujours lui donner des chaînes du bon format.
Si tu construis tes requêtes en concaténant des chaînes de caractères, il n'y a pas de solution, tu dois bien construire ta date. Tu peux éventuellement pour t'aider à construire ta date voir quel format de date et utilisé sur ton serveur IIS et sur ton serveur SQL
bref la galère.
La solution, c'est d'utiliser les objets "command" et "parameter". Regarde le bout de code suivant :
Dim voConnection As SqlConnection
Dim voCommand As SqlCommand
Dim voParaDate As SqlParameter
voConnection = New SqlConnection(System.Configuration.ConfigurationSettings.AppSettings("moConn.ConnectionString"))
voConnection.Open()
voCommand = New SqlCommand("insert into t_test (tst_d_date) values (@pDate)", voConnection)
voParaDate = voCommand.Parameters.Add("@pDate", SqlDbType.DateTime)
voParaDate.Value = DateTime.Today
voCommand.ExecuteNonQuery()
voConnection.Close()
Dans ma requête, je déclare le paramètre @pDate. Ce paramètre, je le type ensuite comme étant du SqlDbType.DateTime et ensuite je lui assigne une date (et pas une chaîne de caractères).
J'espère avoir été assez clair. Sinon n'hésite pas à demander des détails.
TiK
[ Lien ]
[ Lien ]