Comment INSÉRER la date dans la base de données SQL de la colonne de la date à l'aide de dateTimePicker?
J'ai une date de naissance colonne de type Date
dans la base de données sql
Et dans mon application, j'utilise une dateTimePicker
pour obtenir la date de naissance
Mais lorsque j'essaie d'insérer le date
prises à partir de la dateTimePicker
:
J'obtiens une erreur :
Syntaxe incorrecte près de '12'
Et quand j'ai essayer de déboguer le code que j'ai trouver que les valeurs prises par la dateTimePicker
est
Date = {3/21/2015 12:00:00 AM}
Le CODE:
//cmd is sql command
cmd.CommandText="INSERT INTO person (birthdate) VALUES("+dateTimePicker.Value.Date+")";
//con is sql connection
con.Open();
cmd.ExecuteNonQuery();
con.Close();
- stackoverflow.com/questions/12957635/...
- SQL Injection d'alerte - vous devez vous pas concaténer ensemble vos instructions SQL - utiliser les requêtes paramétrées au lieu d'éviter l'injection SQL
- Vérifiez également le type de données de date de naissance dans le tableau
Vous devez vous connecter pour publier un commentaire.
Ce que vous vraiment devez faire est d'utiliser paramètres pour éviter les attaques par injection SQL, et vous libère de chaîne de formatage des dates - aussi une bonne chose!
En outre, il est à recommander la meilleure pratique pour mettre votre
SqlConnection
,SqlCommand
etSqlDataReader
enusing(....) { .... }
blocs afin d'assurer une bonne élimination:Comme mentionné précédemment, la meilleure pratique consiste à utiliser des paramètres, mais si vous avez vraiment besoin d'utiliser une instruction TSQL à partir de la source, vous devez utiliser la date dans le format: aaaammjj
Essayer y compris des citations:
Je vous recommande d'utiliser les paramètres de trop.
Essayer cela comme une chaîne de caractères de format:
VALUES
dateTimePicker
stocke les valeurs que1/1/1900 12:00:00 AM
de sorte que vous devriez utiliserDATETIME
si vous essayez de stocker depuis DATETIME format est:YYYY-MM-DD HH:MI:SS
.Vous pouvez imprimer la
dateTimePicker
valeur à l'aide deà voir pour vous-même.