J'ai une petite question sur les procédures stockées et le DateTime2
type de données dans SQL Server 2008.SQL Server 2008 procédure stockée avec DateTime2
je suis arrivé plusieurs procédures stockées en utilisant le DateTime2
type de données et je veux insérer la date 0001.01.01 00:00:00
mais ne fonctionnera pas avec VB.net et je ne peux pas trouver la raison pour laquelle.
J'utilise ce fragment de code:
Dim sqlStatement As New SqlClient.SqlCommand
Dim sqlTransaction As SqlClient.SqlTransaction
sqlStatement.CommandType = CommandType.StoredProcedure
sqlStatement.CommandText = "SCHEMA.spInsertDate"
sqlStatement.Parameters.AddWithValue("@Date", "0001.01.01 00:00:00")
sqlStatement.ExecuteNonQuery()
pour appeler les procédures stockées de mon programme (la procédure stockée est simple, rien d'autre déclaration INSERT
et fonctionne très bien avec les dates réelles). Mais quand j'entre la date 0001.01.01 00:00:00
il vient toujours avec l'erreur que je ne peux pas insérer des dates avant '01 .01.1753 'quand je veux exécuter la procédure stockée.
Maintenant, je sais déjà que le type de données DateTime2
dans SQL Server doit prendre en charge cela. Donc, ma question est qu'il est possible que ce soit un problème de pilote et que la mise à jour de SQLClient résoudrait ce problème, ou est-ce un problème général et je peux enfin arrêter de chercher et utiliser simplement 1753.01.01.
Merci Lim
Merci! Cela fonctionne :) – Lim
@Lim: oui, le '.AddWithValue()' est pratique - mais un peu dangereux parfois, car ce n'est pas toujours évident dès le début ce que 'SqlDbType' sera choisi pour votre valeur fournie. Je préfère toujours dire ** explicitement ** au paramètre quel 'SqlDbType' il est - moins la possibilité d'une surprise (méchante) ... –
Je vois ce que vous voulez dire c'est la première fois que j'ai rencontré un problème avec le .AddWithValue() Fonction. Je garderai cela à l'esprit pour les futurs programmes :) Merci beaucoup d'avoir clarifié ça :) – Lim