Я пытаюсь вставить данные формы в таблицу с помощью хранимой процедуры, вызвав метод ExecuteAsync из Dapper. После отправки имена параметров изменены.
public static async Task<bool> Insert(DynamicParameters dp)
{
int IsSuccessed;
using (SqlConnection c = new SqlConnection(con))
{
IsSuccessed = await c.ExecuteAsync("AddStudent", dp, commandType: CommandType.StoredProcedure);
}
return IsSuccessed > 0 ? true : false;
}
Параметры изменены, показывая в SQL Server Profiler
declare @p8 nvarchar(100)
set @p8=NULL
exec AddStudent @Name1=N'Ahmad',@TazkiraNumber1=N'890',@TazkiraPage1=N'0987',@TazkiraVolume1=N'8',@GenderID1=N'1',@VisitorSourceID1=N'2',@msg=@p8 output
select @p8
Следующий код создает динамические параметры из коллекции форм:
var dp = new DynamicParameters();
foreach (string key in form.Keys)
{
dp.Add(key.ToString(), form[key]);
}
Я получаю данные формы с помощью IFormCollection и создаю DynamicParameters из ключа и значения коллекции форм и передаю динамический параметр в метод ExecuteAsync, и он вызывает хранимую процедуру для вставки данных в таблицы. Процесс выполнения хранимой процедуры завершается неудачей.
Я запустил профилировщик SQL-сервера и заметил, что 1 добавляется к каждому параметру, когда @Name становится @ Name1.
Есть идеи, почему это происходит?