Hola, este es mi primer mensaje y espero q sea de ayuda  
 
 Asi es como utilizo yo Procedimientos Almacenados en SQL Server 2000 (7) desde vb.net:
- Public Function CargarTablaCamposCondicionOrden(ByVal Tabla As String, ByVal Campos As String, ByVal Condicion As String, ByVal Orden As String, ByVal Da As SqlClient.SqlDataAdapter, ByVal Ds As DataSet) 
-         Dim oCommand As SqlClient.SqlCommand = New SqlClient.SqlCommand() 
-         oCommand.CommandText = "[PA_DevolverTablaCamposCondicionOrden]" 
-         oCommand.Connection = Conexion 
-         oCommand.CommandTimeout = 0 
-         oCommand.CommandType = CommandType.StoredProcedure 
-         oCommand.Parameters.Add("@Tabla", SqlDbType.Char, 50).Value = Trim(Tabla) 
-         oCommand.Parameters.Add("@Campos", SqlDbType.Char, 300).Value = Trim(Campos) 
-         oCommand.Parameters.Add("@Condicion", SqlDbType.Char, 200).Value = Trim(Condicion) 
-         oCommand.Parameters.Add("@Orden", SqlDbType.Char, 100).Value = Trim(Orden) 
-         Da = New SqlClient.SqlDataAdapter(oCommand) 
-         Conexion.Open() 
-         Da.Fill(Ds, Tabla) 
-         Conexion.Close() 
- End Function 
-   
El objeto Conexion es un SqlClient.SqlConnection, pasandole como ConnectionString la ip y el puerto del servidor, nombre de usuario, contraseña, etc.
Este es el Procedimiento Almacenado:
- set ANSI_NULLS ON 
- set QUOTED_IDENTIFIER ON 
- go 
-   
- ALTER PROCEDURE [dbo].[PA_DevolverTablaCamposCondicionOrden] 
- @Tabla char(50), 
- @Campos char (300), 
- @Condicion char (200), 
- @Orden char (100) 
- AS 
- EXEC('SELECT '+@Campos+' FROM '+@Tabla+' WHERE '+@Condicion+' ORDER BY '+@Orden) 
-   
Ya diras como te ha ido, un saludo.