我在调用应该删除记录的存储过程。在删除之前,如果在另一个表中有涉及我们要删除的记录的记录,则执行检查。如果是的话,我需要返回一个文本值列表来识别引用我们想要删除的记录的记录,所以用户可以先删除它们。我想我应该使用这个输出参数,但不知道如何分配一个记录集。这里是我的代码:如何将记录集作为输出参数返回?
SqlCommand cmd = new SqlCommand("DeleteTD", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@pID", gvTD.SelectedDataKey));
SqlParameter resultParameter = cmd.Parameters.Add(new SqlParameter("@pResult", SqlDbType.NVarChar));
resultParameter.Direction = ParameterDirection.Output;
rdr = cmd.ExecuteReader();
我不确定我的resultParameter是否正确。 这里是存储过程的一部分:
CREATE PROCEDURE DeleteTD
-- Add the parameters for the stored procedure here
@pID INT,
@pResult NVARCHAR(100) OUTPUT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @vCount INT;
SELECT @pResult = 0;
SELECT @vCount = COUNT(1) FROM Город WHERE Город.ТД = '@pID';
IF @vCount > 0
SELECT @pResult = Название FROM Город WHERE ТД = '@pID';
ELSE
DELETE FROM ТД WHERE ID = @pID;
同样,我不知道应该@pResult是什么类型。
你能帮我写正确的方法吗? 谢谢, 大卫
非常感谢您的完整答案。它现在有效。 –