Процедура ожидает параметр, который не был указан

Я получаю сообщение об ошибке при доступе к хранимой процедуре в SQL Server

Server Error in '/' Application.
Procedure or function 'ColumnSeek' expects parameter '@template', which was not supplied. 

Это происходит, когда я вызываю хранимую процедуру с параметром через соединение данных .net с sql(System.data.SqlClient), хотя я поставляю параметр. Вот мой код.

SqlConnection sqlConn = new SqlConnection(connPath);
sqlConn.Open();

//METADATA RETRIEVAL
string sqlCommString = "QCApp.dbo.ColumnSeek";
SqlCommand metaDataComm = new SqlCommand(sqlCommString, sqlConn);
metaDataComm.CommandType = CommandType.StoredProcedure;
SqlParameter sp = metaDataComm.Parameters.Add("@template",SqlDbType.VarChar,50);
sp.Value = Template;

SqlDataReader metadr = metaDataComm.ExecuteReader();

И моя хранимая процедура:

   USE [QCApp]
   GO
   SET ANSI_NULLS ON
   GO
   SET QUOTED_IDENTIFIER ON
   GO

   ALTER PROCEDURE [dbo].[ColumnSeek] 
       @template varchar(50)
   AS
   EXEC('SELECT Column_Name, Data_Type 
   FROM [QCApp].[INFORMATION_SCHEMA].[COLUMNS] 
   WHERE TABLE_NAME = ' + @template);

Я пытаюсь понять, что я делаю здесь не так.

Редактировать: Как оказалось, Template был нулевым, потому что я получал его значение от параметра, переданного через URL, и я испортил передачу параметров URL (я использовал@ для и вместо&)

Ответы на вопрос(10)

Ваш ответ на вопрос