Richa Gupta Ответов: 1

Как отправить выборочные значения в хранимую процедуру в случае, если я использую одну и ту же процедуру для нескольких задач в таблице ?


Я использую одну процедуру, скажем "sp_emp", со значениями по умолчанию, уже установленными в null.Все CRUD-операции выполняются в одной процедуре.
Используя C# Linq, я пытаюсь вызвать процедуру с ограниченными значениями (скажем, разное количество значений в случае вставки и разное нет. в случае обновления). Но я получаю ошибку "нет аргумента, соответствующего полю..."
Пожалуйста, помогите как я могу отправить различий нет. аргументов?

Что я уже пробовал:

Я уже назначил DBNUll. value для всех тех параметров, для которых я не хочу устанавливать это значение

F-ES Sitecore

Это плохая идея, просто выделите специальные хранимые процессы для действий CRUD, так что один для создания, один для чтения и т. д. Это делается по какой-то причине, и одна из причин-проблема, с которой вы сейчас столкнулись.

Richa Gupta

Кажется, я следую этому только потому, что у меня нет другого выбора :(

1 Ответов

Рейтинг:
1

Thomas Nielsen - getCore

Эта ошибка указывает на отсутствие параметра.
Вы используете рамки сущности? может ли это звучать так, потому что вы используете Linq?
Если вы хотите использовать одну хранимую процедуру, например типичную spUpsertX, объединяющую вставки и обновления, вы должны позволить sql server обрабатывать, являются ли ваши новые данные вставкой или обновлением, потому что только он знает, обновляют ли другие люди то же самое одновременно, что может изменить характер операции. Это заставило бы вашу потребность в передаче нулевого параметра полностью исчезнуть.

Во всяком случае, где я думаю, ваша проблема заключается в том, что нельзя установить значение null или значение dbnull.значение параметра порядка в себя, вы должны установить его путем присвоения обновляемых до objectparameter с значение dbnull значение.стоимости в его стоимость ... по общему признанию это немного неуклюже