我将SQL中的日期存储为DateTime,当在文本框中显示它时,我这样做:
txtDateLogged.Text = v.DateLogged.ToString("dd-MM-yyyy");
Run Code Online (Sandbox Code Playgroud)
但是,当我更新文本框写回SQL时,获取和使用此时无效的DateTime错误:
if (DateLogged!= "")
{
uInput.DateLogged = Convert.ToDateTime(DateLogged);
}
Run Code Online (Sandbox Code Playgroud)
我假设我在格式化中遗漏了一些东西 - 将日期值传递给公共void,将更新作为字符串进行处理,然后在上面的行中进行转换.有什么建议?
谢谢
Ť
您需要以转换为文本的相同格式转换回来,例如
uInput = DateTime.ParseExact(text, "dd-MM-yyyy", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
有关DateTime.ParseExact详细信息,请参阅文档.
当然,如果你可以避免转换为字符串表示 - 或保持DateTime同样 - 那会更好.
如果您正在解析用户输入,则应使用DateTime.TryParseExact,以考虑无效数据的可能性而不使用流控制的异常.