C# 2005 y StoreProcedure de Sql

06/05/2009 - 07:09 por Javier Montero | Informe spam
Buen dia amigos
Soy algo novato en esta parte de conectar aplicaciones a SQL, deseo
primeramente consultarles lo siguiente:
1. Es preferible usar el DataSet que crea el wizard del Visual C# o es
preferible crear una cadena de conexion para la aplicacion
2. Deseo conectar varias StoreProcedure de mi DB SQL a una aplicacion C# que
lo que hare uno de los Store para explicarles es registrar compras, me
gustaria me puedan orientar o dar una idea de como es el codigo C# para
conectar o enviar la informacion de mi formulario a mi Store el cual si el
registro se creo correctamente devolvera 0 y sino sera 1 lo que devolvera el
store como error

Gracias de antemano por su ayuda y consejos
Atentamente
Javier Montero

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
06/05/2009 - 08:40 | Informe spam
"Javier Montero" wrote in message
news:
Mostrar la cita
Bueno, lo que hace el Wizard es precisamente crear una cadena de
conexión para la aplicación. La cadena se guarda automáticamente en el
archivo de configuración. Desde ahi puedes sacarla y usarla en cualquier
otro sitio aunque no tenga nada que ver con el DtaSet, exactamente igual que
si hubieras creado la cadena manualmente.

Mostrar la cita
Ejemplo:
Supongamos que el SP es asi:
CREATE PROCEDURE Prueba
@UnDato varchar(50)
AS
Insert Compras Values(@UnDato)
Return 1
GO

Para llamarlo desde el programa cliente:

SqlConnetion cn = new SqlConnection(cadenaDeConexion);
SqlCommand cmd = new SqlCommand("Prueba", cn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parm1 = cmd.Parameters.Add("@UnDato", SqlDbType.Varchar,50);
parm1.Value = "El Valor";
SqlParameter parmResultado = new SqlParameter("Return_Value",
SqlDbType.Int);
parmResultado.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(parmResultado);
cn.Open();
cmd.ExecuteNonQuery();
int resultado = (int)parmResultado.Value;
cn.Close();
#2 Javier Montero
07/05/2009 - 06:54 | Informe spam
"Alberto Poblacion" wrote
in message news:%
Mostrar la cita
Super te agradezco mucho trabaje mis store a las mil maravillas, solo tengo
una ultima duda que he estado batallando hoy casi toda la tarde, yo dentro
de mi Store tengo programado ciertos mensajes de validaciones que hago, veo
que al querer agregar un duplicado trabaja bien pero como puedo hacer para
que esos mensajes de SQL Error muestre el texto, observe que en la ventanita
de error en tiempo de debug mi dice SP_AddMessage y el texto de mi error,
pero como puedo capturar ese texto y pasarlo a una ventana de error para el
usuario. Dejo el mensaje que tengo programado a nivel de SQL

/*Valido no venga vacio el numero de compra*/
IF @CompCod IS NULL
BEGIN
PRINT 'Debe de Proporcionar una Codigo de Compra'
RETURN
END

/*Valido la compra no exista*/
IF EXISTS
(Select compcodigo From ComprasRegistro where compcodigo = @CompCod)
BEGIN
RAISERROR(50010, 16, 1)
PRINT 'COMPRA YA EXISTE, NO SE PUEDE REPETIR NUMERO DE COMPRA'
RETURN
END

Agradezco tu ayuda Alberto y el de los demas partner del grupo
Javier Montero
#3 Alberto Poblacion
07/05/2009 - 08:41 | Informe spam
"Javier Montero" wrote in message
news:%
Mostrar la cita
Para capturar los PRINT se usa un evento del objeto Connection que se
llama InfoMessage:

SqlConnection cn = new SqlConnection(cadena);
cn.InfoMessage += new SqlInfoMessageEventHandler(MensajeRecibido);
//usar ahora la conexión para llamar a los procedimientos
...

private void MensajeRecibido(sender As Object, e As SqlInfoMessageEventArgs)
{
//El PRINT nos llega aquí dentro de e.Message
}
#4 Mauricio Atanache
08/05/2009 - 03:42 | Informe spam
Yo usaría en su lugar la función Raiserror en el procedimiento almacenado,
así creo un error, con el texto de error que me convenga.


Cordial saludo,



Mauricio Atanache G.

"Alberto Poblacion"
escribió en el mensaje de noticias:#
Mostrar la cita
Ads by Google
Search Busqueda sugerida