Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASPX (.net) (http://www.forosdelweb.com/f78/)
-   -   Como llamo a Procedimiento Almacenado??? (http://www.forosdelweb.com/f78/como-llamo-procedimiento-almacenado-431503/)

shumito 04/10/2006 11:00

Como llamo a Procedimiento Almacenado???
 
Como llamo a un procedimiento almacenado y asociarlo a una grilla?¿?

Gelipon 04/10/2006 12:32

El llamado a un Store Procedura depende de que componente de acceso a datos estés utilizando, estos pueden ser el System.Data.SqlClient que es el nativo de Visual Studio, Microsoft.ApplicationBlocks.Data que es una librería por separado que te administra conecciones y transacciones a tu BD o puede ser el Microsoft.Practices.EnterpriseLibrary.Data que es hasta ahora algo de lo mejorcito que hay, he aquí unos tips para cada uno:

------System.Data.SqlClient----
SqlConnection dbCon = new SqlConnection(ConfigurationManager.ConnectionStrin gs["MailNextelDB"].ToString());//Coneccion del web.config a la BD MailNextelDB

SqlCommand sqlCommand = new SqlCommand("[mcs_MailNextel_SelectUser]", dbCon);
sqlCommand.CommandType = CommandType.StoredProcedure;//Aki especificas que vasa ejecutar un store

SqlParameter sqlParam = new SqlParameter();

sqlParam = sqlCommand.Parameters.Add("@PTN", SqlDbType.VarChar);//agregas un parametro
sqlParam.Value = user.PTN;//Valor del parametro
sqlParam.Direction = ParameterDirection.Input;//si es de entrada o salida

dbCon.Open();//abres coneccion
using (SqlDataReader dataReader = sqlCommand.ExecuteReader())//como es una consulta es ExecuteReader, puede ser ExecuteNonQuery en caso de Updates, Insert y delete

--------Microsoft.ApplicationBlocks.Data ------

SqlParameter[] sqlParam;
sqlParam = new SqlParameter[8];//Especifico la cantidad de parametros que voy a meter

sqlParam[0] = new SqlParameter("@PTN", SqlDbType.VarChar);
sqlParam[0].Direction = ParameterDirection.Input;
sqlParam[0].Value = user.PTN;

sqlParam = this.SetParameters(sqlParam, user);//Aki llamo a una funcion que me setea los parámetros faltantes a mi arreglo sqlParam
//Para ejecutar se utiliza el SqlHelper de la libreria que arriba te puse entre ---
SqlHelper.ExecuteNonQuery(ConfigurationManager.Con nectionStrings["MailNextelDB"].ToString(), CommandType.StoredProcedure, "[mcs_MailNextel_UpdateUser]", sqlParam);//Aquí hago un Update de la tabla User, pero esto está mejor xke no abres conecciones, tambien especifico que se trata de un store procedure

-------Microsoft.Practices.EnterpriseLibrary.Data-------

Database db = DatabaseFactory.CreateDatabase();
DbCommand dbCommand = db.GetStoredProcCommand("[usp_UpdateMessage]");esto es una maravilla, solo obtengo mi store
db.AddInParameter(dbCommand, "@IdMessage", DbType.Int32, message.IdMessage);//Agrego el parámetro de entrada(AddInParameter)
db = this.SetParameters(db, dbCommand, message);//Lleno mi dbCommand con los demas parametros faltantes
db.ExecuteReader(dbCommand); y ejecuto la operación

Lo mas seguro es que tu caso sea el primero, es decir, solo debiste haber agregado a tu carpeta bin la libreria System.Data.SqlClient como referencia y en tu codigo .cs la pones como using System.Data.SqlClient; y listo, cualquier duda mandame un mensaje


La zona horaria es GMT -6. Ahora son las 06:24.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.