ストアドプロシージャの世界は初めてです。
ユーザー名とURLパスをチェックする既存のストアドプロシージャを備えた既存のシステムがあります。ストアドプロシージャは、ユーザーの詳細が存在するかどうかを確認します。存在する場合、ユーザー名が属する戻り値groupname。
私が欲しいのは、このストアドプロシージャのasp.net c#コードを書くことだけです。ユーザーの詳細とパスを渡し、ストアドプロシージャの戻り値を文字列変数に返します。
SQLServerの以下のリンクはストアドプロシージャを実行します
http://www.natboxservices.com/helmshore/img/pic.jpg
SQLServerの出力値の以下のリンクは次のようになります
http://www.natboxservices.com/helmshore/img/2012-07-03%2009.35.13.jpg
上記の画像のグループ名が空であることに注意してください。間違った入力でストアドプロシージャを実行し、sqlserverにそのデータのグループ名が存在しないためです。存在する場合は、「administrator」や「Manager」などのグループ名の値を返します。
私の質問は、パラメータを割り当てて文字列変数に戻り値を渡すために、「データが存在し、グループ名を返す場合、その値を文字列変数に渡したい」です。
これは私のストアドプロシージャです
USE [IRC_siteadmin]
GO
/****** Object: StoredProcedure [dbo].[sp_intranet_GetSecurity] Script Date: 07/03/2012 10:05:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_intranet_GetSecurity]
@username VARCHAR(50),
@path VARCHAR(200),
@errorID INT OUTPUT
AS
BEGIN
SELECT
G.name as groupname
FROM
tbl_site_link L WITH(NOLOCK)
INNER JOIN
tbl_site_link_group LG WITH(NOLOCK)
ON
L.link_id = LG.link_id
INNER JOIN
tbl_site_group G WITH(NOLOCK)
ON
LG.group_id = G.group_id
INNER JOIN
( SELECT
group_id
FROM
tbl_site_user U WITH(NOLOCK)
INNER JOIN
tbl_site_user_group UG WITH(NOLOCK)
ON
U.user_id = UG.user_id
WHERE
[name] = @Username ) U
ON
G.group_id = U.group_id
WHERE
L.url LIKE '%'+@path+'%'
AND
(U.group_id IS NOT NULL)
UNION
SELECT
'Uber' as groupname
FROM
tbl_site_link L WITH(NOLOCK)
INNER JOIN
tbl_site_link_group LG WITH(NOLOCK)
ON
L.link_id = LG.link_id
CROSS JOIN
( SELECT
group_id
FROM
tbl_site_user U WITH(NOLOCK)
INNER JOIN
tbl_site_user_group UG WITH(NOLOCK)
ON
U.user_id = UG.user_id
WHERE
[name] = @Username
AND
group_id = 1 ) U
WHERE
L.url LIKE '%'+@path+'%'
AND
(U.group_id IS NOT NULL)
END
助けていただければ幸いです
ありがとう