I'm trying to call the below stored procedure but I am unsure on what to pass through one of the parameters (@UnsubscribeTypes
) I've tried passing in a list but got a compile error. I'm using c#, Visual Studio 2010, web forms. Any ideas on what I should pass in when calling the stored procedure in my c# code (ado.net)?
Here is my stored procedure:
ALTER PROCEDURE [czone].[SetAccountEmailPreference]
(
@EmailAddress VARCHAR(255),
@UnsubscribeTypes dbo.ListOfIDs READONLY,
@SentEmailID INT = NULL
)
AS
SET NOCOUNT ON;
EXEC dbo.LogObjectExecution @@PROCID;
DECLARE @UnsubscribeID INT = (SELECT TOP 1 UnsubscribeID
FROM Email.dbo.Unsubscribe
WHERE EmailAddress = @EmailAddress
ORDER BY UnsubscribeID DESC);
-- Unsubscribe
IF ((SELECT COUNT(*) FROM @UnsubscribeTypes) > 0)
BEGIN
IF(@UnsubscribeID IS NULL)
BEGIN
-- ADD UNSUBSCRIBE
INSERT INTO Email.dbo.Unsubscribe (EmailAddress, CreatedDate)
VALUES (@EmailAddress, CURRENT_TIMESTAMP)
SET @UnsubscribeID = @@IDENTITY;
END
-- Remove current mappings
DELETE FROM Email.dbo.UnsubscribeTypeMapping
WHERE UnsubscribeFK = @UnsubscribeID;
-- Add new mappings
INSERT INTO Email.dbo.UnsubscribeTypeMapping (UnsubscribeFK, UnsubscribeTypeFK, SentEmailFK)
SELECT
@UnsubscribeID, ID, @SentEmailID
FROM
@UnsubscribeTypes;
END
-- Subscribe
ELSE IF (@UnsubscribeID IS NOT NULL)
BEGIN
DELETE FROM Email.dbo.Unsubscribe
WHERE UnsubscribeID = @UnsubscribeID;
END