2009-03-11 5 views

Respuesta

10

Puede usar el método SqlCommandBuilder.DeriveParameters para devolver información sobre los parámetros asociados con un procedimiento almacenado. Iteración en la colección le permitirá determinar el nombre del parámetro, tipo de datos, dirección, etc.

SqlCommand cmd = new SqlCommand(); 
SqlConnection conn = new SqlConnection("myConnectionString"); 
cmd.CommandType = CommandType.StoredProcedure; 
cmd.CommandText = "myStoredProcName"; 
cmd.Connection = conn; 

conn.Open(); 
SqlCommandBuilder.DeriveParameters(cmd); 
conn.Close(); 

SqlParameterCollection collection = cmd.Parameters; 

Tome un vistazo a las definiciones SqlParameterCollection y SqlParameter clase para obtener más información.

+0

excelente - gracias, eso es muy útil saber. –

0

no tengo VS.NET para probarlo, pero .Prepare() puede hacer esto para usted :)

O simplemente puede agregar los parámetros. :)

1

No estoy seguro de si puede hacerlo en el entorno de ADO.NET directamente, de alguna manera - pero siempre se podía consultar los "sys" puntos de vista del sistema para obtener esa información:

select * from sys.parameters 
where object_id in 
     (select object_id from sys.procedures where name = 'YourSProc') 

Marc

0

Y también con:

EXEC sp_sproc_columns 'YourSProc' 
Cuestiones relacionadas