c# | 您所在的位置:网站首页 › Win10字符串未被识别为有效的日期 › c# |
字符串未被识别为有效日期时间
时间:2015-04-04 07:04:09
标签: c# asp.net datetime 我有2个文本框,我必须添加Joining Date和Leaving Date。 现在,当我添加加入日期并将Leaving date留空并提交表单时,我收到错误 字符串未被识别为有效日期时间 这是我的 代码 cmd1.Parameters.Add("@leaving_date", SqlDbType.DateTime).Value = Convert.ToDateTime(txtdol.Text);我不知道为什么会出错。请帮忙 更新: 文本框代码: - 5 个答案:答案 0 :(得分:0) 确保在文本框中以有效格式输入日期。最好的选择是为文本框使用日期验证器,如果输入的日期格式是错误的,则可以显示验证错误而不是RTE。 这是验证的问题: Date validation for a textbox 这是MSDN的可用日期格式: https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx 答案 1 :(得分:0) 当然你会得到错误。 中发生的错误 Convert.ToDateTime(txtdol.Text);你正在尝试转换null的东西,就像你说编译器编译它一样: Convert.ToDateTime("");它的emptry字符串,无法转换。 以下是您可以考虑的一些选项: 检查文本框是否为空并且提供的日期是否有效(客户端或服务器端) 使用DateTimePicker(如jquery ui datetimepicker)使用此代码代替该行末尾的代码 String.IsNullOrEmpty(txtdol.Text)? DateTime.Now:Convert.ToDateTime(txtdol.Text) 醇>如果txtdol为null或为空,则返回当前日期时间,否则将txtdol转换为datetime并返回。 答案 2 :(得分:0) 用户输入日期到文本框的好方法是使用: 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; }答案 3 :(得分:0) 由于在文本框中输入了无效的日期格式(空格式或格式错误)而发生此错误修复问题修改代码如下所示,使用DateTime.ParsExact cmd1.Parameters.Add("@leaving_date", SqlDbType.DateTime).Value = DateTime.ParsExact(txtdol.Text,"dd/MM/yyyy",System.Globalization.DateTimeStyles.AllowInnerWhite);第二个参数也可以改为格式数组。 根据需要更改代码 答案 4 :(得分:0) 在收到这么多错误之后,就像这样 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); }它有效.. !! |
CopyRight 2018-2019 实验室设备网 版权所有 |