我的错误是字符串未被识别为有效的DateTime

时间:2013-11-04 01:36:32

标签: c# asp.net datetime webforms

如果我点击保存按钮时将日期留空,则会出现此错误。

前台代码

日期

<asp:TextBox ID="txtDate" runat="server" CssClass="text_300" MaxLength="200"></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="txtDate" Format="dd/MM/yyyy"></asp:CalendarExtender>
<asp:MaskedEditExtender TargetControlID="txtDateFrom" Mask="99/99/9999"
    MessageValidatorTip="true" OnFocusCssClass="MaskEditFocus" OnInvalidCssClass="MaskEditError"
    MaskType="Date"
    ErrorTooltipEnabled="True" runat="server" ID="mskD" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server"
    ErrorMessage="*" ControlToValidate="txtDate" SetFocusOnError="True"></asp:RequiredFieldValidator>

返回代码

string result = _bllstaff.addInfo(Convert.ToDateTime(this.txtDateFrom.Text == "" 
    ? 0.ToString() : this.txtDateFrom.Text), _pUser.IDUSER, 
    DateTime.Now, dtCurrentTable);

如果我在单击“保存”按钮后将其留空,则会发生此错误。也许你们对我有想法或建议。谢谢。

1 个答案:

答案 0 :(得分:3)

很难准确理解您遇到的问题。也许修改你的问题,发布更多代码,并使用代码块将有所帮助。编辑:(我看到问题已更新)

但我会尝试一个建议;我的建议是使用DateTime.Parse方法,甚至更好DateTime.TryParse并使代码更容易理解:

//...
DateTime date = DateTime.MinValue;
DateTime.TryParse(this.txtDateFrom.Text, out date);
string result = _bllstaff.addInfo(date, _pUser.IDUSER, DateTime.Now, dtCurrentTable);
//...