You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从VB.NET应用向存储过程传递datetime输入参数并解决转换报错

错误原因及解决方案

核心错误为日期解析的格式标识符使用错误:DateTime.ParseExact方法中,小写mm对应的是分钟,大写MM才是代表月份的格式符。你当前使用的mm/dd/yyyy会把日期中的月份解析为分钟,导致生成的DateTime对象值不符合预期,最终传入存储过程时触发类型转换错误。

具体修复步骤如下:

  • 修正ParseExact的格式字符串,将"mm/dd/yyyy"替换为"MM/dd/yyyy",修改后的代码参考:
Dim dt As DateTime = DateTime.ParseExact(Trim(RecordDate),"MM/dd/yyyy",CultureInfo.InvariantCulture)
cmd.Parameters.Add("@recdate", AseDbType.DateTime).Value = dt
  • 检查RecordDate字符串的实际格式,确保和你使用的格式串完全匹配:如果你的日期字符串存在单数字的月份/日期(比如1/5/2024而非01/05/2024),可以把格式串调整为"M/d/yyyy",兼容单/双数字的月日写法。
  • 确认参数类型的拼写和命名空间引用正确:代码中的Asedbtype应为大小写正确的AseDbType,同时确保项目已经正确引用Sybase.Data.AseClient程序集,并且导入了对应命名空间。
  • 调试验证解析结果:可以在解析完成后增加断点,检查dt变量的值是否符合预期,避免因RecordDate内容不符合格式要求导致解析本身就抛出异常。

内容的提问来源于stack exchange,提问作者Hema Sreya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:54:09