Je veux que les dates ressemblent à celles de dd.MM.yyyy. Moi comme ça, qui est indépendant de la culture.
Je ne sais pas comment faire les choses correctement.
cmd.Parameters.Add("@eventdate", SqlDbType.Date).Value = dateAddTxtBox.Text;
Exception de format:
La string n'a pas été reconnue comme une date et heure valide
- L'identificateur en plusieurs parties "System.Data.DataRowView" n'a pas pu être lié
- "Erreur de connection" lors de l'utilisation de la command insert pour accéder à la database avec ado.net C #
- WAITFOR RECEIVE résultats décalés / retardés de 1 résultat
- Interrogation lente si la précision est incorrecte pour un paramètre décimal
- Sql Timeout dans l'application mais pas dans Sql Server Mgmt Studio
J'ai essayé de nombreux extraits comme DateTime.ParseExact(dateAddTxtBox.Text, "dd.MM.yyyy", null)
ou en utilisant System.Globalization.CultureInfo.InvariantCulture
ainsi. Rien n'a aidé!
Ou peut-être que cela sera mieux fait dans la procédure SQL, n'est-ce pas?
CREATE PROCEDURE add_history @user VARCHAR(20), @eventdate DATE, ... INSERT INTO History(userid, eventdate, ...) VALUES ((SELECT userid FROM Users.SUsers WHERE suname=@user), @eventdate, ...)
Tout a bien fonctionné alors que je n'ai pas formaté mes TextBox avec un motif:
<asp:TextBox id="dateAddTxtBox" runat="server" ReadOnly="True" /> <asp:CalendarExtender ID="AddTxtBoxCalendarExtender" runat="server" Enabled="True" TargetControlID="dateAddTxtBox" Format="dd.MM.yyyy" ... />
UPD:
Une petite mention >> il y avait un atsortingbut en lecture seule sur TextBox. Voilà pourquoi ça n'a pas marché!
Maintenant, la question est, est-il correct d'ignorer ReadOnly="True"
? Je ne veux pas que les users modifient les dates directement dans la boîte.
UPD2:
ReadOnly="True"
n'a aucun sens. Cela fonctionne bien comme il se doit! Je ne sais pas pourquoi.
Ne spécifiez pas SqlDbType.Date
. Fiez-vous plutôt à la détection automatique, cela fonctionnera:
System.DateTime dateValue = DateTime.ParseExact(...); command.Parameters.AddWithValue("@name", dateValue);