Tema: parametros
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/02/2005, 17:45
Avatar de xknown
xknown
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 20 años, 2 meses
Puntos: 7
Podrías hacer una rutina en la que te devuelva todos lo parámetros de un procedimiento almacenado, y luego asignar sus valores dinámicamente (tendrías que respetar el orden en el que ingresan los parámetros), algo con el que puedes pasar varios parámetros a un procedimiento en C# es la palabra clave "params" (no sé si en vb.net se pueda)
Te envío parte del código que tengo, para darte alguna idea:
Código:
protected System.Data.IDbCommand Comando(string ProcedimientoAlmacenado)
{
	System.Data.SqlClient.SqlCommand Com;
	if(ColComandos.Contains(ProcedimientoAlmacenado))
		Com= (System.Data.SqlClient.SqlCommand) ColComandos[ProcedimientoAlmacenado];
	else
	{
		System.Data.SqlClient.SqlConnection Con2=new System.Data.SqlClient.SqlConnection(this.CadenaConexion);
		Con2.Open();
		Com=new System.Data.SqlClient.SqlCommand(ProcedimientoAlmacenado,Con2);
		Com.CommandType=System.Data.CommandType.StoredProcedure;
		System.Data.SqlClient.SqlCommandBuilder.DeriveParameters(Com);
		Con2.Close();
		Con2.Dispose();
		ColComandos.Add(ProcedimientoAlmacenado,Com);
	}
	Com.Connection=(System.Data.SqlClient.SqlConnection)  this.Conexion;
	Com.Transaction=(System.Data.SqlClient.SqlTransaction) this.mTransaccion;
	return (System.Data.IDbCommand) Com;
}
protected void CargarParametros(System.Data.IDbCommand Com,System.Object[] Args)
{ 
	int Limite=Com.Parameters.Count;
	for(int i=1;i<Com.Parameters.Count;i++)
	{
		System.Data.SqlClient.SqlParameter P=(System.Data.SqlClient.SqlParameter) Com.Parameters[i];
		if(i<=Args.Length)
			P.Value=Args[i-1];
		else
			P.Value=null;
	}
}
También puedes utilizar la clase SqlHelperParameterCache que forma parte de Data Access Application Block, tiene una funcionalidad parecida al código que te envié antes, evidentemente varias mejoras.
http://msdn.microsoft.com/library/de.../html/daab.asp

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño