В дополнение к ответу Райана вам также необходимо установить свойство DataColumn
Ordinal
, если вы имеете дело с table-valued parameter
с несколькими столбцами с порядковыми номерами , а не в алфавитном порядке.
Например, если у вас есть следующее табличное значение, которое используется в качестве параметра в SQL:
CREATE TYPE NodeFilter AS TABLE (
ID int not null
Code nvarchar(10) not null,
);
Вам нужно будет упорядочить столбцы как таковые в C #:
table.Columns["ID"].SetOrdinal(0);
// this also bumps Code to ordinal of 1
// if you have more than 2 cols then you would need to set more ordinals
Если вам не удастся сделать это, вы получите ошибку разбора, не удалось преобразовать nvarchar в int.