Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

C#, sp_executesql e sintassi errata

Ho notato che non hai impostato CommandType su StoredProcedure... Non so se questa sia la causa del tuo problema o meno:

cmd.CommandType = CommandType.StoredProcedure;

L'ho fatto così tante volte io stesso che non riesco a contare.

Suggerimento per attivare la memoria quando verranno generate eccezioni la prossima volta:

Tieni aperto SQL Query Profiler durante l'esecuzione dell'app. Quando ogni comando viene eseguito, mostra l'SQL generato ed eseguito sul lato server. Se l'SQL generato inizia con sp_executesql seguita dalla tua query, quindi viene eseguita come una query normale, ad esempio cmd.CommandType = CommandType.Text , se inizia con exec , è probabile che venga eseguito come processo memorizzato. Assicurati di ricevere l'SQL corretto generato per il tipo di query che stai tentando di eseguire.