![](/img/trans.png)
[英]Stored Procedure from SQL Server is not filling ASP.Net dropdown using VB.Net coding
[英]Returning date from Stored procedure in ASP.Net/VB.Net
我想在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
我认为您的问题在这里:
objArgs1.Add("@Date", 0, 0, ParameterDirection.Output)
您正在添加0,它们应为typeOf DateTime。
编辑
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
看起来您得到的错误是SQL错误而不是VB.Net错误。 您是否要在某处将日期时间转换为int? 您可以尝试运行ExecuteNonQuery()
方法以查看是否遇到相同的错误。
您还可以运行SQLProfiler并确切查看正在运行的SQL。 然后,您可以尝试运行此SQL,即SQL Server Management Studio
您添加了两个参数-但您说应该返回下一个参数?
所以一定是
date DateTime = cmd.ExecuteScalar()
REM date = cmd.Parameters("@Date").Value
con.Close()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.