Próbuję przekazać parametr wartości tabeli do procedury składowanej, ale nadal otrzymuję wyjątek (patrz poniżej).Jak przekazać parametr wartości tabeli
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();
Typ jest zdefiniowany na serwerze tak:
CREATE TYPE [dbo].[IdList] AS TABLE(
[Id] [int] NOT NULL
)
Próbowałem przechodzącą sharedPdfs jako List<int>
i IQueryable<int>
, ale wciąż otrzymuję następujący wyjątek:
Object must implement IConvertible.
Ktoś wie, co robię źle? Dokumentacja sugeruje, że powinienem być w stanie przekazać listę jako TVP, ale nie podam żadnych przykładów.
Dziękuję.
Jak to 'getPermittedUsers' oświadczył? –
To jest daleki strzał, ale czy próbowałeś przekazać 'int []'? –
Musisz użyć 'DataTable'. – ChaosPandion