magasin datetimepicker valeur de c# en base de données mysql
Bonjour je veux stocker datetimepicker valeur en base de données mysql mon code est donné ci-dessous
dtpDate = datetimepicker1.value.date;
dtpTime = datetimepicker2.value.Timeofday;
MySqlCommand cmd = new MySqlCommand("INSERT INTO schedule_days(schedule_name,start_time,status,days,start_date,connector_id) VALUES ('" + name + "','" + dtpTime + "','" + s + "','" + day + "','"+dtpDate+"','" + chkArray[i].Tag + "')", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
mais pas la valeur est stockée dans la base de données
et à cet endroit il y est impossible de lire les données.
quel peut être le problème?
Vous havn't associé la
Voir le dernier argument de la MySqlCommand constructeur.
chaîne de connexion de l'objet est dans le con de la variable qui est donné à merveille, mais ne sont pas mentionnés ici, car il n'est pas nécessaire de le mettre ici.
merci, je doit être aveugle 🙂
Eh bien, il n'aide pas que c'est à la fin d'un très long de la ligne de...
MySqlCommand
objet avec votre connexion.Voir le dernier argument de la MySqlCommand constructeur.
chaîne de connexion de l'objet est dans le con de la variable qui est donné à merveille, mais ne sont pas mentionnés ici, car il n'est pas nécessaire de le mettre ici.
merci, je doit être aveugle 🙂
Eh bien, il n'aide pas que c'est à la fin d'un très long de la ligne de...
OriginalL'auteur Tejas Virpariya | 2013-03-05
Vous devez vous connecter pour publier un commentaire.
La Valeur n'est pas entré à la base de données MySQL, car il y a erreur dans votre requête à dtpTime et dtpDate champs.
criez-vous de le remplacer avec dtpTime.De la valeur.TimeofDay et dtpDate.De la valeur.Date ane nouvelle requête sera comme ceci
Votre solution a vulnérabilités, donc je ne peux pas le supporter.
pas de problème mais s'il vous plaît me donner le détail comment il a vulnérabilités!
Voir ma réponse. Vous n'êtes pas à l'aide d'une requête paramétrée qui crée des vulnérabilités. Si quelqu'un venait à entrer "';DROP TABLE schedule_days--" pour le
name
variable de mauvaises choses vont arriver.être vous avez raison, mais j'ai compris que l'utilisation du problème et donner la solution de l'utilisateur qui a accepté parce qu'il fonctionne comme il l'avait souhaité. Peut-être votre solution est sûr, mais vous a fait la même erreur dans le remplissage de dtpDate et dtpTime rempli de laquelle le demandeur a fait dans sa question.votre valeur ne sera pas enregistrée dans la base de données MySQL si vous ne l'utiliserez pas dtpDate.De la valeur.Date.ToString("yyyy-MM-dd HH:mm") et dtpTime.De la valeur.TimeofDay au lieu de dtpDate et dtpTime .
OriginalL'auteur Kevan
Bien, il peut pas être la cause du problème (y at-il des exceptions? Ce n'
ExecuteNonQuery
retour?) mais vous devriez certainement pas être la construction de votre SQL comme ceci. Elle conduit à Les attaques par injection SQL, ainsi que les données des problèmes de conversion.Au lieu de cela, vous devez utiliser SQL paramétrée:
J'ai deviné les types de données - s'il vous plaît vérifiez votre base de données actuelle.
AddWithValue
depuisAdd
est marqué comme obsolète, sauf MySqlConnection est différent de celui SqlConenction.C'est le problème avec le fait d'être sur une pâte feuilletée de connexion wifi avec seulement intermittente docs accès 🙂 Merci!
Ont trouvé la surcharge de travail vous permettant de spécifier les
SqlDbType
et puis définissez la valeur de la propriété.Oui, c'est correct. Bien que je ne suis pas sûr si vous devez utiliser l'objet de l'initialiseur avec
Value
.une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre versions du serveur MySQL pour la bonne syntaxe à utiliser près de ':nom, :temps, :statut :jours, :date, :connecteur)' à la ligne 1 ce type d'erreur que j'obtiens.
OriginalL'auteur Jon Skeet
À L'Aide Du Package NuGet MySql.Les données 6.6.4.
Actuellement MySqlParameter ne prend pas en charge les paramètres sans nom. Les paramètres doivent commencer avec un
?
.Exemple:
Quelque chose comme cela devrait fonctionner. Éviter de concaténation de chaîne avec Sql, car cela peut conduire à des risques de sécurité.
:
.Mal, vous pouvez utiliser
:
ou@
. À moins que ceci est le mal de la documentation. Qui est en fait possible si vous n'utilisez pas dotconnect.Je corrige la position des mains, mais je crois que la documentation correcte serait ce lien, qui dispose alors d'un lien vers le
MySqlParameter
classe qui ne montrent, en fait, la@
utilisé.Je viens de vérifier que la documentation et il semble que il n'y a pas de paramètres non nommés nommés et les paramètres doivent commencer avec
?
Avez-vous regarder le
MySqlParameter
liés à la documentation?OriginalL'auteur Dustin Kingen