Почему .NET добавляет SP Params дважды? - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть приложение winforms, и я вызываю SP, когда вставляю строку. Я определяю параметры, но в конце добавляются дополнительные параметры.

da.InsertCommand = new SqlCommand("dbo.GridInsert", new SqlConnection(MC.ConnectionString));
da.InsertCommand.CommandType = CommandType.StoredProcedure;
da.InsertCommand.Parameters.Add("@ApplyTo", SqlDbType.VarChar, 25).Value = applyTo;
da.InsertCommand.Parameters.Add("@ApplyType", SqlDbType.VarChar, 50).Value = applyType;
da.InsertCommand.Parameters.Add("@ApplyValue", SqlDbType.VarChar, 50).Value = applyValue;
da.InsertCommand.Parameters.Add("@ID", SqlDbType.BigInt, 0, "ID");
da.InsertCommand.Parameters.Add("@InstanceID", SqlDbType.BigInt, 0, "InstanceID");

Выше, первые 3 параметра получают свои значения из переменных. Следующие 2 привязаны к столбцам сетки. Тем не менее, это то, что отправлено в БД.

exec dbo.GridInsert @ApplyTo='xxx',@ApplyType='xxx',@ApplyValue='xxx',@ID=NULL,@InstanceID=38,@ApplyTo='xxx',@ApplyType='xxx',@ApplyValue='xxx' 

Обратите внимание, что первые 3 параметра помещены на передней и конечной частях. Кроме того, если я не добавлю эти три параметра в коллекцию, они все равно будут добавлены в конец. У кого-нибудь есть подсказки?

...