C# 如何在SQL Server中转换用户输入日期和时间并保存

C# 如何在SQL Server中转换用户输入日期和时间并保存,c#,sql-server,datetime,C#,Sql Server,Datetime,我使用带有AjaxToolkit MaskedTextextender的为StartDate和EndDate设置了日期时间输入文本框结束日期与开始日期代码相同 这是代码 <asp:TextBox ID="txtStartDateTime" runat="server"></asp:TextBox> <ajaxToolkit:MaskedEditExtender ID="MaskedEditExtender1" TargetControlID="txtSta

我使用带有AjaxToolkit MaskedTextextender的
StartDate
EndDate
设置了日期时间输入文本框<代码>结束日期与
开始日期
代码相同

这是代码

<asp:TextBox ID="txtStartDateTime" runat="server"></asp:TextBox>

<ajaxToolkit:MaskedEditExtender ID="MaskedEditExtender1"
    TargetControlID="txtStartDateTime" runat="server" Mask="99/99/9999 99:99"
    MessageValidatorTip="true" MaskType="DateTime"  ClearMaskOnLostFocus="true"
    ClearTextOnInvalid="true" AcceptAMPM="true" UserDateFormat="DayMonthYear"
    ErrorTooltipEnabled="True">
</ajaxToolkit:MaskedEditExtender>

<ajaxToolkit:MaskedEditValidator ID="MaskedEditValidator1" runat="server" 
    ControlToValidate="txtStartDateTime" ControlExtender="MaskedEditExtender1"
    IsValidEmpty="false" EmptyValueMessage="Input Date and Time" 
    InvalidValueMessage="Date Time Input Not Valid">
</ajaxToolkit:MaskedEditValidator> 
现在,问题是我在将这些日期保存到数据库时出错。这是一条错误消息

System.FormatException:未将字符串识别为有效的日期时间

在System.DateTimeParse.ParseExact(字符串s,字符串格式, DateTimeFormatInfo dtfi,DateTimeStyles样式)

在System.DateTime.ParseExact(字符串s,字符串格式, IFormatProvider(提供程序)


我尝试了
convert.ToDateTime(..)
。它不起作用。我完全不知道如何在SQL Server中保存日期和时间。有人能帮我修复它吗?

无论您在txtStartDateTime中输入什么,它都与您为ParseExact指定的确切格式不匹配。我对ajaxToolkit一无所知,但您的“掩码”与格式不同。Mask=“99/99/9999 99:99”不同于“dd-MM-yyy-hh:MM”谢谢。我改为“dd/MM/yyyy HH:MM”。但仍显示错误。如果有多余空间,请尝试打印strStartDateTime值,然后修剪。此外,“99/99/99999:99”不是有效的日期和时间。尝试将该值更改为“01/01/1999 00:00”,您可以在这里自行获取匹配的格式。这当然不是sql问题,因为您甚至还没有通过解析输入。@ray这没有任何区别。我试过你的方法。不工作。html代码中的日期时间格式为Mask=“99/99/9999 99:99”,wihc与c代码中的“dd/MM/yyyy HH:MM”相等。知道我哪里出错了吗。感谢
string strStartDateTime = txtStartDateTime.Text;   
DateTime dtStartingDateTime = new DateTime();    
dtStartingDateTime = DateTime.ParseExact(strStartDateTime, "dd/MM/yyyy hh:mm",
    System.Globalization.CultureInfo.InvariantCulture);