c# 您所在的位置:网站首页 Win10字符串未被识别为有效的日期 c#

c#

2024-07-12 03:26| 来源: 网络整理| 查看: 265

字符串未被识别为有效日期时间 时间: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 实验室设备网 版权所有