Я вызываю хранимую процедуру, которая должна удалить запись. Перед удалением проверка выполняется, если в другой таблице есть записи, относящиеся к записи, которую мы хотим удалить. Если да, мне нужно вернуть список текстовых значений, которые будут идентифицировать записи, относящиеся к записи, которую мы хотим удалить, чтобы пользователь мог сначала удалить их. Я предполагаю, что для этого должен использовать выходной параметр, но не уверен, как назначить ему набор записей. Вот мой код:Как вернуть набор записей в качестве выходного параметра?
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();
Я не уверен, что мой результатПараметр правильный. Вот часть хранимой процедуры:
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 должен иметь.
Не могли бы вы помочь мне правильно написать мой код? Спасибо, David
Большое спасибо за полный ответ. Он работает сейчас. –