J'ai un problème avec la mise à jour de la valeur dateofbirth de gridview.Problème avec la mise à jour de la valeur DOB de Gridview
Dans ma base de données j'ai stocké la date de naissance de la personne dans un champ comme ... Jour, Mois, Année. Après le stockage, j'ai affiché ces valeurs dans gridview sous un seul champ appelé DateOfBirth en utilisant cette requête.
SELECT Id, Name, Address, Day + '-' + Month + '-' + Year AS DateOfBirth,
Phone, EmergencyContact, DateOfRegistration FROM Patient
Cela fonctionne très bien, affichant le format DateOfBirth avec DOB. Mais quand j'essaye de mettre à jour le DateOfBirth Contient de gridview son ne met pas à jour où l'autre champ dans la table met à jour correctement.
Voici mon code:
<Columns>
<asp:BoundField DataField="DateOfBirth" HeaderText="DateOfBirth"
SortExpression="DateOfBirth" />
</Columns>
<asp:SqlDataSource>
InsertCommand="INSERT INTO [Patient] ([Name], [Address], [Day],[Month],
[Year], [Phone], [EmergencyContact], [DateOfRegistration])
VALUES (@Name, @Address, @Day, @Month, @Year, @Phone,
@EmergencyContact, @DateOfRegistration)
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
SelectCommand="SELECT Id, Name, Address, Day + '-' + Month + '-' +
Year AS DateOfBirth, Phone, EmergencyContact, DateOfRegistration
FROM Patient
UpdateCommand="UPDATE [Patient] SET [Name] = @Name, [Address] = @Address,
[Day] = @Day, [Month][email protected], [Year]= @Year, [Phone][email protected],
[EmergencyContact][email protected],
[DateOfRegistration][email protected]
WHERE [Id] = @Id">
<InsertParameters>
<asp:Parameter Name="Day" Type="String" />
<asp:Parameter Name="Month" Type="String" />
<asp:Parameter Name="Year" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Day" Type="String" />
<asp:Parameter Name="Month" Type="String" />
<asp:Parameter Name="Year" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
Mon deuxième problème est quand je suis sélectionnant la date du contrôle de calendrier et de le mettre à l'intérieur de la zone de texte puis saving.After que lorsque je suis l'affichage de la Date gridview montre des correctement mais avec cela pour toute la date, l'heure est 12:00:00 AM. Pour le type registrationdate, saisissez DatTime pour la table et StoredProcedure. Voici mon code:
protected void
CalendarRegistrationDate_SelectionChanged(object sender, EventArgs e)
{
TxtRegistrationDate.Text =
CalendarRegistrationDate.SelectedDate.ToShortDateString();
CalendarRegistrationDate.Visible = false;
}
protected void BtnCalender_Click(object sender, EventArgs e)
{
CalendarRegistrationDate.Visible = true;
}
DateTime registrationdate = Convert.ToDateTime(TxtRegistrationDate.Text);