Impossible de convertir le paramètre de la valeur à partir d'une Chaîne DateTime
J'obtiens une erreur lors de l'utilisation de la commande de paramètre de type sqldbtype.datatime
Voici le code que j'utilise
cmd.Parameters.Add("@Posted_date", SqlDbType.DateTime).Value = Convert.ToDateTime(dt.Rows[i]["messagePostedDate"]);
Erreur "impossible de convertir le paramètre de la valeur à partir d'une Chaîne DateTime" et de la valeur de dt.Les lignes[i]["messagePostedDate"] est "2008-10-01 00:00:00.000" –
Personne ne sait ce que pourrait être le problème?
- Quel est la valeur de dt.Les lignes[i]["messagePostedDate"] lorsque vous recevez le message d'erreur?
- L'erreur que vous obtenez?
- J'ai ajouté une réelle question à votre question, ce qui est important si vous voulez une réponse
- l'obtention de cette erreur "impossible de convertir le paramètre de la valeur à partir d'une Chaîne DateTime" et de la valeur de dt.Les lignes[i]["messagePostedDate"] est "2008-10-01 00:00:00.000"
- Êtes-vous sûr de la valeur de la ligne est
2008-10...
. Avez-vous de débogage et d'inspecter la valeur lors de l'exécution de l'application? - stackoverflow.com/questions/15540932/... plz donnez moi la raison pourquoi je reçois ce type d'erreur
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser:
Convertit la chaîne de caractères spécifiée représentation d'un nombre équivalent de la date et de l'heure, à l'aide de la culture spécifiée spécifique à la mise en forme de l'information.
Basé sur votre commentaire vous devez analyser les DateTime comme:
Depuis votre chaîne contient le Format DateTime
yyyy-MM-dd HH:mm:ss.fff
, vous pouvez utiliser DateTime.ParseExact avec votre format de date.Le problème est que la langue du compte de connexion dans SQL Server ne correspond pas à votre culture d'interface utilisateur de la langue.
.NET est d'essayer de convertir la date que vous avez passé à un format de date dans sql server. Elle transmet la date de la clinet comme une chaîne de caractères et il ne peut pas le convertir car le client de la culture est différente de la langue par défaut" ensemble pour la connexion SQL Server.
Pour résoudre cela, vous avez besoin pour correspondre à la langue de la session de sql server avec un
set language xxxxx
ou changer la langue pour la connexion avec SQL Management Studio ou de modifier le SQL Server par défaut de la langue.Alors il devrait fonctionner.
(convert(varchar,messagePostedDate,101)) as messagePostedDate
l'utiliser dans votre requête selectvoici un lien pour refrence il a tout de moulage et de la conversion de T-SQL
http://msdn.microsoft.com/en-us/library/ms187928.aspx
cmd.Parameters.Add("@Posted_date", SqlDbType.DateTime).Value = dt.Rows[i]["messagePostedDate"];
dt.Rows[i]["messagePostedDate"]