[英]String was not recognized as Valid Datetime
我有2个文本框,必须在其中添加Joining Date
和Leaving Date
。
现在,当我加入加入日期和离开的Leaving date
空白,并提交我得到错误的形式
字符串未被识别为有效日期时间
这是我的代码
cmd1.Parameters.Add("@leaving_date", SqlDbType.DateTime).Value = Convert.ToDateTime(txtdol.Text);
我不知道为什么这给错误。 请帮忙
更新:
文字框代码:-
<asp:TextBox ID="txtdol" CssClass="form-control" runat="server" ValidationGroup="AddNew" Enabled="true"></asp:TextBox>
确保在文本框中以有效格式输入日期。 最好的选择是为文本框使用日期验证器,如果输入的日期格式错误,则可以显示验证错误而不是RTE。
这是验证的问题:
这是MSDN可用的日期格式:
https://msdn.microsoft.com/zh-CN/library/az4se3k1(v=vs.110).aspx
当然,您会因此而出错。 错误发生在
Convert.ToDateTime(txtdol.Text);
您正在尝试转换为null的内容,就像您对编译器说的那样:
Convert.ToDateTime("");
它是空字符串,不能转换。
您可以考虑以下一些选择:
使用此代码,而不是在该行的末尾
String.IsNullOrEmpty(txtdol.Text)吗? DateTime.Now:Convert.ToDateTime(txtdol.Text)
如果txtdol为null或为空,则返回当前datetime,否则将txtdol转换为datetime并返回。
用户将日期输入到文本框的好方法是使用:1- MaskedTextBox或2- DateTimePicker。 或者,如果要使用文本框,也可以使用此代码检查空值。
DateTime? nullDateTime = null;
cmd1.Parameters.Add("@leaving_date", SqlDbType.DateTime).Value = string.IsNullOrEmpty(txtdol.Text.Trim()) ? nullDateTime : Convert.ToDateTime(txtdol.Text.Trim())
对于验证文本框,请检查此功能:
private bool validateDate(TextBox arg1)
{
DateTime dt;
bool valid1 = DateTime.TryParseExact(arg1.Text.Trim(), "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out dt);
if (!string.IsNullOrEmpty(arg1.Text.Trim()) )
{
MessageBox.Show("Format Date is wrong! Currect format is(dd/MM/yyyy)", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
arg1.Focus();
return false;
}
return true;
}
发生此错误是由于在文本框中输入了无效的日期格式(空或错误的格式)来解决此问题,请按如下所示修改代码,请使用DateTime.ParsExact
cmd1.Parameters.Add("@leaving_date", SqlDbType.DateTime).Value = DateTime.ParsExact(txtdol.Text,"dd/MM/yyyy",System.Globalization.DateTimeStyles.AllowInnerWhite);
第二个参数也可以更改为格式数组。
根据需要更改代码
收到很多错误之后,像这样
if (txtdol.Text == null || txtdol.Text == string.Empty)
{
cmd.Parameters.Add("@leaving_date", SqlDbType.DateTime).Value = DBNull.Value;
}
else
{
cmd.Parameters.Add("@leaving_date", SqlDbType.DateTime).Value = Convert.ToDateTime(txtdol.Text);
}
而且有效.. !!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.