【问题标题】:Data can be inserted directly from SP but fails if the SP is called from the application可以直接从 SP 插入数据,但如果从应用程序调用 SP 则会失败
【发布时间】:2011-09-27 09:52:35
【问题描述】:

我试图通过调用存储过程通过我的应用程序插入一条记录。但是,当执行存储过程时,我收到以下错误:

“将数据类型 nvarchar 转换为 datetime 时出错。将数据类型 nvarchar 转换为 datetime 时出错。”

此错误仅在我发送日期时显示,但如果我跟踪每个参数并直接从数据库执行 SP,它会完美执行而没有任何错误。可能是什么原因?我无法发布代码,因为它分布在多个层中。

【问题讨论】:

  • 检查您输入的日期,它们可能是数据库无法识别的格式。你能至少给我们sp的参数签名吗?
  • 另外,提供追踪日期。否则,跟踪该参数的屏幕截图。
  • 您输入的日期时间格式可能不匹配。请检查一下。您是否将参数作为日期时间传递?
  • 另外,请给我们看一段调用存储过程的C#代码。

标签: c# asp.net sql-server datetime stored-procedures


【解决方案1】:

您如何发送日期?您是发送日期时间还是发送格式化的“日期”字符串?如果是后者,请查看发送的实际日期字符串(提示:您可以使用 SQL 分析器查看实际发送的内容)。然后尝试在 SQL 管理工作室中运行存储过程。由于您的日期格式,它很可能会爆炸。

解决方案(如果我有正确的假设):更改为实际的 DateTime 结构将解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多