sql - Web 服务的正确日期时间格式

标签 sql web-services date-format formatexception

我有一个 web 服务,它有一个通过 xmlhttprequest 对象在我的 javascript 中调用的方法。该方法接受一个日期时间参数,该参数随后被转换为字符串并针对数据库运行以执行计算。

我从 m_txtDateAdd 获取值并发送 xmlHttprequest

<asp:textbox id=m_txtDateAdd tabIndex=4 runat="server" Width="96px" Text="<%# Today %>">
</asp:textbox>

它有一个验证器
<asp:CustomValidator id="m_DateAddValidator" runat="server" ErrorMessage="Please Enter a Valid Date" ControlToValidate="m_txtDateAdd">&#x25CF;</asp:CustomValidator>

我的网络方法看起来像这样
[WebMethod]
public decimal GetTotalCost(DateTime transactionDate)
{
    String sqlDateString = transactionDate.Year+"/"+transactionDate.Month+"/"+transactionDate.Day;

我使用 sqlDateString 作为我发送到数据库的命令文本的一部分。它是一个遗留应用程序和它的内联 sql,所以我没有自由设置存储过程并在我的代码中创建和分配参数。这在 90% 的情况下都有效。网络服务在 m_txtDateAdd 的 onchange 事件上被调用。我不时从服务器得到的响应是

System.ArgumentException:无法将 25/06/2009 转换为 System.DateTime。
System.ArgumentException:无法将 25/06/2009 转换为 System.DateTime。

参数名称:类型 ---> System.FormatException:字符串未被识别为有效的 DateTime。
   at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
   at System.DateTime.Parse(String s, IFormatProvider provider)
   at System.Convert.ToDateTime(String value, IFormatProvider provider)
   at System.String.System.IConvertible.ToDateTime(IFormatProvider provider)
   at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
   at System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type)
   --- End of inner exception stack trace ---
   at System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type)
   at System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection)
   at System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request)
   at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
   at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

最佳答案

您需要以正确的 XML 格式发送 DateTime:2009-07-10T12:40Z。来自 http://en.wikipedia.org/wiki/ISO_8601 .

另外,你为什么使用HttpRequest?为什么不直接使用添加服务引用?

关于sql - Web 服务的正确日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1109958/

相关文章:

sql - PySpark - 如何使用连接更新 Dataframe?

php - 将四张表合并为一张新表

java - 发出 SOAP 请求时出现 401 错误未经授权

c# - 从 ASP.NET Core Web 方法提供 SOAP

java - 如何将此字符串转换为 Java 中的标准日期?

sql - 在多列中搜索多个包含条件

MySQL 事务 : One Large Transaction against Multiple Small Transactions

web-services - 在外部为类创建 jaxb 注释

xml - 将字符串转换为 XSLT 中的日期格式

php - 将 m/d/y(01/1/2001 示例)字符串存储为 DATE