use*_*408 7 sql web-services date-format formatexception
我有一个webservice,其方法是通过我的javascript中的xmlhttprequest对象调用的.该方法接受datetime参数,该参数随后转换为字符串并针对数据库运行以执行计算.
我从m_txtDateAdd获取值并发送xmlHttprequest
<asp:textbox id=m_txtDateAdd tabIndex=4 runat="server" Width="96px" Text="<%# Today %>">
</asp:textbox>
Run Code Online (Sandbox Code Playgroud)
它有一个验证器
<asp:CustomValidator id="m_DateAddValidator" runat="server" ErrorMessage="Please Enter a Valid Date" ControlToValidate="m_txtDateAdd">●</asp:CustomValidator>
Run Code Online (Sandbox Code Playgroud)
我的webmethod看起来像这样
[WebMethod]
public decimal GetTotalCost(DateTime transactionDate)
{
String sqlDateString = transactionDate.Year+"/"+transactionDate.Month+"/"+transactionDate.Day;
Run Code Online (Sandbox Code Playgroud)
我使用sqlDateString作为我发送到数据库的commandtext的一部分.它是一个遗留应用程序及其内联sql,所以我没有自由设置存储过程,并在我的代码后面创建和分配参数.这有效率的90%.在m_txtDateAdd的onchange事件上调用webservice.我一次又一次地从服务器得到的响应是
System.ArgumentException:无法将25/06/2009转换为System.DateTime.System.ArgumentException:无法将25/06/2009转换为System.DateTime.
参数名称:type ---> System.FormatException:String未被识别为有效的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()
Run Code Online (Sandbox Code Playgroud)
Joh*_*ers 11
您需要以正确的XML格式发送DateTime:2009-07-10T12:40Z.来自http://en.wikipedia.org/wiki/ISO_8601.
另外,你为什么使用HttpRequest?为什么不使用添加服务参考?
| 归档时间: |
|
| 查看次数: |
34002 次 |
| 最近记录: |