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

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
...全文
33 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过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
好象还不好用啊
我真的不知道那里有毛病啊
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

5.9w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-05-06 03:57
社区公告
暂无公告