关于从存储过程返回参数是怎么用啊?

hartlen 2004-05-06 03:57:03

CInt(param.Value)
提示说无法转换
存储过程如下
CREATE PROCEDURE IsValidateUser ( @Name varchar(10),
@Password varchar(6) ,
@Pid integer out ) AS
select @Pid=isnull(PatientsID,0) from patients where PatientsName=@Name and Passwords=@Password
GO
一个函数如下
Public Function Isvalidate(ByVal name As String, ByVal password As String) As Integer
Dim myconnection As SqlConnection = New SqlConnection("server='localhost';uid=sa;pwd=123456;database=db")
'使用存储过程
Dim mycommand As SqlCommand
If Ckbox.Checked Then
mycommand = New SqlCommand("IsValidateDoctors", myconnection)
Else
mycommand = New SqlCommand("IsValidateUser", myconnection)
End If

mycommand.CommandType = CommandType.StoredProcedure
Dim param As SqlParameter

param = New SqlParameter("@Name", SqlDbType.VarChar, 20)
param.Value = name
mycommand.Parameters.Add(param)

param = New SqlParameter("@Password", SqlDbType.VarChar, 20)
param.Value = password
mycommand.Parameters.Add(param)


param = New SqlParameter("@Pid", SqlDbType.Int)
param.Direction = ParameterDirection.Output
mycommand.Parameters.Add(param)

Try
myconnection.Open()
'执行命令
mycommand.ExecuteNonQuery()
Catch myException As Exception
'出错处理
Finally
myconnection.Close()
End Try
Return CInt(param.Value)
End Function
...全文
48 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hartlen 2004-05-06
  • 打赏
  • 举报
回复
谢谢大家的帮助
我是刚刚学.net技术
我的这个问题我是大意了
本来是数据类型不匹配!
一个是32 位的int32 一个是int16 好象是这俩个吧
我不记得了
谢谢大家了
Seeko0 2004-05-06
  • 打赏
  • 举报
回复
Try
myconnection.Open()
'执行命令
mycommand.ExecuteNonQuery()
mycommand.Parameters("Pid").Value '这个地方获得输出参数的值
Catch myException As Exception
'出错处理
Finally
myconnection.Close()
End Try
hartlen 2004-05-06
  • 打赏
  • 举报
回复
好象还不好用啊
我真的不知道那里有毛病啊

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧