【问题标题】:Returning date from Stored procedure in ASP.Net/VB.Net从 ASP.Net/VB.Net 中的存储过程返回日期
【发布时间】:2010-06-04 09:47:11
【问题描述】:

我想在 VB.Net 上执行一个方法来返回存储过程中的日期。我尝试使用 ExecuteScalar 但它不起作用它重新运行错误

'不允许从数据类型 datetime 到 int 的隐式转换。使用 CONVERT 函数运行此查询'

任何帮助将不胜感激?

谢谢

下面是代码

  Public Function GetHolidaydate(ByVal struserID as String) As DateTime

        Dim objArgs1 As New clsSQLStoredProcedureParams

        objArgs1.Add("@userID", Me.Tag)
        objArgs1.Add("@Date", 0, 0, ParameterDirection.Output)

        Return (CDate(ExecuteScalar(clsLibrary.MyStoredProcedure.GetHolidayDate, objArgs1)))

End Function

【问题讨论】:

    标签: asp.net vb.net stored-procedures date


    【解决方案1】:

    我认为你的问题在这里:

    objArgs1.Add("@Date", 0, 0, ParameterDirection.Output)
    

    您在它们应该是 typeOf DateTime 的位置添加 0。

    编辑

    Public Function GetHolidayDate(ByVal struserID as String) AS DateTime
        Dim con As New SqlConnection(yourSQLConnectionString)
        Dim cmd As New SqlCommand
        Dim date As DateTime    
    
        con.Open()
        cmd.Connection = con
        cmd.CommandType = CommandType.StoredProcedure
        cmd.CommandText = "yourStoredProcedureName"
        cmd.Parameters.Add("@userID", Me.Tag)
        cmd.Parameters("@Date").Direction = ParameterDirection.Output
        cmd.ExecuteScalar()
        date = cmd.Parameters("@Date").Value
        con.Close()
    
        Return date
    End Function
    

    【讨论】:

    • 抱歉,我是新手。请问我应该放什么来代替 0?
    • @Mo:您使用的是自定义类,所以我需要知道该类的输入参数。
    • @Ardman: 哦,好吧......你有任何其他解决方案,我可以在不使用我的自定义类的情况下获得结果吗?非常感谢您的帮助。
    【解决方案2】:

    看起来您遇到的错误是 SQL 错误而不是 VB.Net 错误。您是否正在尝试将日期时间转换为 int 某处? 您可以尝试运行ExecuteNonQuery() 方法来查看是否出现相同的错误。

    您还可以运行 SQLProfiler 并准确查看正在运行的 SQL。 然后你可以尝试运行这个 SQL 是 SQL Server Management Studio

    【讨论】:

      【解决方案3】:

      你添加了两个参数 - 但你说它应该返回后一个?

      应该是这样的

      date DateTime = cmd.ExecuteScalar()
      REM date = cmd.Parameters("@Date").Value
      con.Close()
      

      【讨论】:

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