Réglage de la valeur d'insérer un paramètre de SqlDataSource dans le code-behind
J'ai cette SqlDataSource
dans mon formulaire:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
InsertCommand="INSERT INTO [contact] ([Name], [phone], [email], [comment], [time]) VALUES (@Name, @phone, @email, @comment, @time)"
oninserting="SqlDataSource1_Inserting" >
<InsertParameters>
<asp:ControlParameter ControlID="TBname" Name="Name" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="TBphone" Name="phone" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="TBemail" Name="email" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="TBmessage" Name="comment" PropertyName="Text" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
Et j'ai cette fonction qui a pour but de sauver les valeurs des zones de texte dans les quatre premiers champs et à l'heure actuelle dans le cinquième champ:
protected void SaveToDB(object sender, EventArgs e)
{
SqlDataSource1.InsertParameters["time"].DefaultValue = DateTime.Now.ToString();
SqlDataSource1.Insert();
}
4 5 champs d'obtenir leurs valeurs dans certaines zones de texte dans mon formulaire. maintenant le problème est le dernier champ: time
que je ne peux pas définir la valeur. Lorsque la fonction s'exécute, vous donne cette erreur:
Détails De L'Exception: System.Les données.SqlClient.SqlException: Chaîne de caractères ou
des données binaires seront tronquées. La déclaration a été résilié.
Que dois-je faire?
merci de prendre le temps.
- DateTime.Maintenant.ToShortDateString(); essayez ce
- Oui! que vais le faire. tout d'abord, merci d'écrire votre commentaire est une réponse afin que je puisse tique-il vrai réponse. type de champ "time" dans ma db a été char(10), qui, je l'ai fait char(Max) et c'est bon maintenant. merci,
- fait! content d'avoir pu aider ^^
Vous devez vous connecter pour publier un commentaire.
essayez ceci:
"Chaîne de caractères ou des données binaires d'être tronquée." a généralement à faire avec des champs dans les bases de données ayant une taille plus petite que ce que vous essayez de mettre en elle.
Vous devriez être en mesure d'utiliser le SQL fonction GetDate directement dans le InsertCommand sans l'aide de code-behind.