Estoy intentando pasar un parámetro de valor de tabla a un procedimiento almacenado, pero sigo obteniendo una excepción (consulte a continuación).Cómo pasar un parámetro de valor de tabla
SqlCommand c = new SqlCommand("getPermittedUsers", myConn) { CommandType = CommandType.StoredProcedure };
c.Parameters.AddWithValue("@intNotifyingUserId", notifyingUserId);
c.Parameters.AddWithValue("@tSelectedPdfIds", sharedPdfs).SqlDbType = SqlDbType.Structured;
SqlDataReader dr = c.ExecuteReader();
El tipo está definido en el servidor de la siguiente manera:
CREATE TYPE [dbo].[IdList] AS TABLE(
[Id] [int] NOT NULL
)
he tratado de pasar sharedPdfs como List<int>
y IQueryable<int>
, pero obtengo la siguiente excepción:
Object must implement IConvertible.
¿Alguien sabe lo que estoy haciendo mal? La documentación implica que debería poder pasar una lista como TVP pero no dar ningún ejemplo.
Gracias.
¿Cómo se declara 'getPermittedUsers'? –
Este es un tiro largo, pero ¿ha intentado pasar un 'int []'? –
Necesita usar 'DataTable'. – ChaosPandion