我已经看到了几个解决此问题中概述的情况的答案,例如使用 DateTime.Parse、DateTime.ParseExact 或 Convert.ToDateTime。我试图确定为什么这个问题看起来不一致。我使用带有 SQL Server 2008 R2 后端的 Microsoft Enterprise Library Software Factory 构建了一个应用程序,现在它已经投入生产了大约 9 个月。它至少有 20 个具有相同代码格式的实例,这些实例将 DateTime 属性值从 C# 分配给存储过程的 System.Data.DBType.DateTime 参数。20 个代码块中有 19 个工作正常。20 日,我必须添加如下所示的 .ToString() 调用来解决此问题中提到的错误。
db.AddInParameter(command, "beginDT", DbType.DateTime, timeBlock.BeginDT.ToString());
因此,任何人都对为什么它在 19 个完全相同的实例而不是 20 个实例中可以正常工作有一些见解?我只是想更多地了解这些对象的相互关系,以便构建可靠的代码。我已经回到所有其他实例并添加了 .ToString() 调用。虽然还没有完成我的回归测试;所以,我不知道这是否是一个错误。