SQL Server的C#日期格式

Dar*_*ter 1 c# sql-server

我将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,将更新作为字符串进行处理,然后在上面的行中进行转换.有什么建议?

谢谢

Ť

Jon*_*eet 8

您需要以转换文本的相同格式转换回来,例如

uInput = DateTime.ParseExact(text, "dd-MM-yyyy", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

有关DateTime.ParseExact详细信息,请参阅文档.

当然,如果你可以避免转换为字符串表示 - 或保持DateTime同样 - 那会更好.

如果您正在解析用户输入,则应使用DateTime.TryParseExact,以考虑无效数据的可能性而不使用流控制的异常.