Erreur: La conversion d'un type de données nvarchar smalldatetime type de données a abouti à une valeur de plage
Salut à tous, je suis en train de faire ce qui suit requête d'insertion
SqlDataSource userQuizDataSource = new SqlDataSource();
userQuizDataSource.ConnectionString = "Data Source=localhost\\SQLEXPRESS;Initial Catalog=quizApp;Integrated Security=True";
userQuizDataSource.InsertCommand = "INSERT INTO [UserQuiz] ([DateTimeComplete], [Score], [UserName]) VALUES (@DateTimeComplete, @Score, @UserName)";
userQuizDataSource.InsertParameters.Add("DateTimeComplete", DateTime.Now.ToString());
userQuizDataSource.InsertParameters.Add("Score", score.ToString());
userQuizDataSource.InsertParameters.Add("UserName", User.Identity.Name);
int rowsAffected = userQuizDataSource.Insert();
Buti reçois l'erreur suivante:
La conversion d'un type de données nvarchar
smalldatetime type de données a entraîné
dans une gamme de valeur.
La déclaration a été résilié.
Quelqu'un peut-il m'aider?
OriginalL'auteur c11ada | 2010-02-21
Vous devez vous connecter pour publier un commentaire.
Que fait votre déclaration
DateTime.Now.ToString()
retour??Ce que la langue et les paramètres régionaux de votre SQL Server attend??
Avez-vous une incohérence là??? Peut-être que votre .Le rendement NET d'un
MM/dd/yyyy
au format SQL Server s'attenddd/MM/yyyy
(ou vice-versa).Essayer ce code dans votre Serveur SQL server:
Remplacer ma chaîne là avec ce sortie que vous obtenez à partir .NET
DateTime.Now.ToString()
- fait ce travail? SQL Server vous donner une meilleure message d'erreur?Ensuite, essayez d'utiliser la norme ISO-8601 pour les dates (AAAAMMJJ) - ce qui fonctionne pour TOUS les paramètres régionaux et linguistiques dans SQL Server - cela fonctionne??
.net renvoie la date au format jj/MM/aaaa et quand j'ai vérifié SQL server de la date de formiate est à NOUS de style !!
La plus sûre possible "date heure" format de .net pour sql j'ai utilisé à ce jour est "yyyy-MM-dd HH:mm:ss.fff". PK 🙂
OriginalL'auteur marc_s
J'ai eu le même problème en ajoutant datetime.maintenant dans mon serveur SQL de la colonne 'Date' à la valeur de type de données SmallDateTime.
À résoudre, c'était assez simple (après de nombreuses tentatives!!)
Ce sera le retour de la date dans le format que le Serveur va attendre
OriginalL'auteur Liam
Essayez de changer ce:
:
OriginalL'auteur Jim G.
Est de ne pas essayer la conversion de votre date de chaîne:
Edit: Essayer alors:
Il y a un autre moyen de passer de l'objet réel, mais je ne me souviens pas.. désolé.
Désolé, vous avez raison. Il n'y a en fait une autre façon d'ajouter de l'objet c'est à dire datetime mais je ne me souviens pas, n'ont pas obtenu VS ouvert pour le moment. Essayez sur la source de données réelles et de rechercher une méthode quelque chose comme AddParameterValue..(string name, object valeur)..
OriginalL'auteur ziya
Dans Windows 8, si vous êtes confrontés à ce problème, même après un changement de
Formats
en dessous de l'emplacementVous avez encore de transférer ces paramètres en fonction de vos utilisateurs. Dans la même fenêtre, cliquez sur l'onglet "Administration", cliquez sur paramètres de copie.
Sélectionnez les cases appropriées et cliquez sur
OK
.OriginalL'auteur Jasim Khan Afridi