【问题标题】:Getting and using return value from stored procedure获取和使用存储过程的返回值
【发布时间】:2016-10-05 14:32:17
【问题描述】:

这是我的第一个“系统”,我正在尝试登录 Visual Studio 2015/vb.net

我有这个程序:

ALTER proc [dbo].[buscar_acceso]
    @login as varchar(50),
    @password as varchar(50)
as
    declare @returnvalue int

    Select acceso
    From Usuario
    Where login = @login and password = @password

    return @returnvalue

根据登录的值返回 1 或 0

我不知道如何编写类似“按下登录按钮时,您必须接收“用户名”和“密码”参数,使用它们执行“选择”过程并返回1或0. 那么,如果值为1,则“X Menu tooltip is disabled”。

谢谢

【问题讨论】:

  • 这不是“一个功能”,而是一堆需要做的小事。将需求解构为微小的需求。构建每一个并一次测试一个。你应该有类似于“1)你能显示一个登录按钮,2)你能捕捉到新闻事件,3)你能得到用户名,4)你能得到密码,5)你能连接到数据库吗? , 6) 你能调用 store proc, 7) 你能得到返回值, 8) 你能对返回值做逻辑, 9) 你能禁用菜单工具提示, ..."
  • 存储过程有返回。将始终是一个 int 并且不打算返回值。它旨在返回执行的状态指示器。如果要返回标量值,则应使用 OUTPUT 参数。此外,您需要将密码存储为加盐和散列值,而不是像您在这里所做的那样纯文本。
  • 不清楚你在问什么。您是否在问如何编写一个根据是否找到记录返回 1 或 0 的存储过程?如何从存储过程中访问这个返回值?如何创建一个显示用户名和密码字段的网页?等等。

标签: sql-server vb.net stored-procedures


【解决方案1】:

在 VB.net 中执行此操作的一种有效方法是创建一个选择单个行和列的存储过程 - 然后在 VB.net 中将命令作为“ExecuteScalar”执行

例如

dim LoginResult as integer = cmd.ExecuteScalar

.

ALTER proc [dbo].[buscar_acceso]
@login as varchar(50),
@password as varchar(50)
as

Select CASE WHEN EXISTS (SELECT 0 
                                    From Usuario
                                    Where login=@login and password=@password)
                        THEN 
                            1
                        ELSE
                            0
                        END

试试类似的方法

【讨论】:

    猜你喜欢
    • 2019-01-04
    • 2018-10-01
    • 2013-01-22
    • 1970-01-01
    • 2010-10-19
    • 2010-12-12
    • 1970-01-01
    • 2014-05-03
    相关资源
    最近更新 更多