【发布时间】:2015-10-06 01:02:44
【问题描述】:
我想做的是使用我的spLogin 存储过程从同一个表中返回两个值,我想将这两个值都保存在 C# 中的会话中。
这是桌子
create table tbClients
(
ClientID int primary key identity(0,1),
ClientFirstName varchar(20),
ClientLastName varchar(20),
ClientAddress varchar(60),
ClientOrigin varchar(20),
ClientUsername varchar(20),
ClientPassword int,
ClientSecurity int
)
当客户端单击登录按钮时,我想编写一个程序来检查用户是否有效、他们的安全级别是什么以及他们的名字是什么。
这是我目前所拥有的
create procedure spLogin(
@ClientUsername varchar(20),
@ClientPassword int
)
AS BEGIN
DECLARE @Security int
DECLARE @ClientFirstName varchar(20)
IF EXISTS (SELECT * FROM tbClients
WHERE ClientUsername = @ClientUsername
AND ClientPassword = @ClientPassword)
BEGIN
SELECT
@Security = ClientSecurity,
@ClientFirstName = ClientFirstName
FROM tbClients
WHERE
ClientUsername = @ClientUsername
AND ClientPassword = @ClientPassword
IF(@Security = 1)
BEGIN
SELECT 'Admin' as Security, @ClientFirstName
END
ELSE
BEGIN
SELECT 'Customer' as Security, @ClientFirstName
END
END
ELSE
BEGIN
SELECT 'INVALID'
END
END
GO
不知道这是否可行,因为我不确定如何在不使用数据集的情况下将这些值存储在 C# 中,这似乎到目前为止还不起作用?
【问题讨论】:
-
为什么不能用返回的值填充数据集?好吧,首先您的“无效”需要返回 2 个值,而不仅仅是一个。但是一旦解决了这个问题,您应该能够用存储过程结果填充数据集,然后读取数据集并在 C# 端进行处理。我自己已经做过很多次了。
标签: c# sql-server stored-procedures