Lo primero que debemos hacer es diseñar nuestro formulario, los elemento que contendrá dependera directamente de los campos de la tabla o de la información que se quierea presentar.
Componentes a utilizar.
SQLConnection
SQL Command
Stored Procedured SQL SERVER 2005
REVISA ESTO: ES IMPORTANTE AGREGAR EN CADA FORMULARIO DONDE UTILICEMOS CONEXIONES A SQL SERVER EL COMPONENTE SQLClient, ESTE NOS PERMITE REALIZAR LA CONEXION, VASTA CON QUE SE AGREGUE EL SIGUIENTE CODIGO AL INICIO DE ESTE, EN LA SECCION DE CABECERA.
Using System.Data.SQLClient;
Este es mi formulario de ejemplo, es una pantalla para dar de alta a los clientes, en ella solo voy a estar afectando a los campos clave, nombre, direccion y negocio.
Hay que agregrar una nueva conexion a una base de datos, ahi vamos a crear los procedimientos almacenados (stored procedure).
Botón Altas.
Primero hay que crear el procedimiento almacenado, en la venta de Server Explorer , hay que escoger la Base de Datos, y de ahi la carpeta de Stored Procedure, damos un clic con el boton derecho y escogemos Add New Stored Procedure
Esto hará que muestre una pantalla para editar el respectivo código en SQL, los siguientes procedimientos están compuestos de dos partes, la primera donde se declaran los parametros a utilziar, y en la segunda donde se realiza la transacción SQL.
El procedimiento de Insertar un registro queda de esta forma, recuerda que el nombre que le des al Store Proceudure será como se almacenará y se llamará desde tu programa en VS.
Stored Procedure Altas
ALTER PROCEDURE dbo.spAltaCliente
@prmId int,
@prmNombre nvarchar(50),
@prmDireccion nvarchar(50),
@prmNegocio nvarchar(50)
AS
INSERT INTO CLIENTES (ID,NOMBRE,DIRECCION,NEGOCIO)
VALUES (@prmId,@prmNombre,@prmDireccion,@prmNegocio)
RETURN
Código del Botón Altas
cnn = new SqlConnection(conexion);
cnn.Open();
cmd=new SqlCommand(“spAltaCliente”,cnn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(“@prmClave”, SqlDbType.Int).Value = Convert.ToInt16(textBox1.Text);
cmd.Parameters.Add(“@prmNombre”, SqlDbType.NVarChar).Value = textBox2.Text;
cmd.Parameters.Add(“@prmDireccion”, SqlDbType.NVarChar).Value = textBox3.Text;
cmd.Parameters.Add(“@prmNegocio”, SqlDbType.NVarChar).Value = textBox4.Text;
cmd.ExecuteNonQuery();
MessageBox.Show(“Cliente Activado”);
textBox1.Text = “”;
textBox2.Text = “”;
textBox3.Text = “”;
textBox4.Text = “”;
Stored Procedure Eliminar
CREATE PROCEDURE dbo.spEliminaCliente
@prmId int
AS
DELETE FROM CLIENTES WHERE ID=@prmId
RETURN
Código del Butón Eliminar
cnn = new SqlConnection(conexion);
cnn.Open();
cmd = new SqlCommand(“spEliminaCliente”, cnn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(“@prmClave”, SqlDbType.Int).Value = Convert.ToInt16(textBox1.Text);
cmd.ExecuteNonQuery();
MessageBox.Show(“Cliente ELIMINADO”);
textBox1.Text = “”;
textBox2.Text = “”;
Stored Procedure Modificar
CREATE PROCEDURE dbo.spModificaCliente
@prmId int,
@prmNombre nvarchar(40)
AS
UPDATE clientes SET nombre=@prmNombre WHERE Id=@prmId
RETURN
Código del Botón Modificar
cnn = new SqlConnection(conexion);
cnn.Open();
cmd = new SqlCommand(“spModificaCliente”, cnn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(“@prmId”, SqlDbType.Int).Value = Convert.ToInt16(textBox1.Text);
cmd.Parameters.Add(“@prmNombre”, SqlDbType.NVarChar).Value = textBox2.Text;
cmd.ExecuteNonQuery();
MessageBox.Show(“Cliente Modificado”);
textBox1.Text = “”;
textBox2.Text = “”;
REVISA ESTO: LA VARIABLE CONEXION ES DE TIPO STRING Y CONTIENE LA CADENA DE CONEXION, PARA ESTE EJEMPLO CONSIDERE LA SIGUIENTE :
String conexion=”Data Source=.;Initial Catalog=dbDemo;Integrated Security=true”;
Data Sorce: Se debe indicar el nombre del servidor, si se tiene SQLSERVER Express, sera necesario darselo, si se cuenta con una versión superior, podemos utilizar unicamente el . (punto)
Initial Catalog: Debemos colocar el nombre de la base de datos a utilizar.
Y donde esta el procedimiento almacenado para el boton modificar??? que debo poner en vez de Delete? … Update?…
Es una aplicacion Windows? por ke no tengo los componentes SQL Conection y SQL Command??? tengo muchas dudas…
Hola Sergio, primero que nada si es una aplicación para Windows,no tienes los componentes SQLConnection y SQLCommand porque debes de agregar en el encabezado de tu formulario esta linea de codigo.
Using System.Data.SQLClient;
¿cuales son tus dudas?
Sergio, con respecto al procedimiento de modificar, ya lo corregi. Puedes checar el Post. Saludos!!!
Muchisimas Gracias! esta muy bien todo lo respondido, voy a intentar ejecutarlo… Esta muy bueno este sitio.. me gustaria tener tu correo… Saludos!….
jororague lo que pasa es que a mi no me quiere guardar el Alter procedure disque por que el nombre es incorrecto
Hola, disculpa se jecuta perfectamente la intrucccion, me dice que que si se agrego el cliente, pero cuando reviso la tabla de datos o quiero utilizar el cliente, resulta que no se agrego, alguna idea??
tengo una duda, soy nuevo en esto, no se define conexion en el codigo que pusiste, como lo tendria que definir? porque me salta que conexion no existe en el contexto actual
pues ke estupido eres si no sabes nada de esto pòrque te metes de vendedor lo mejor sera que te dediques a vender pistaches en las calles
aki les dejo el codigo q me funciono para altas:
void Button4Click(object sender, EventArgs e)
{
conexion.Open();
SqlCommand cmd=new SqlCommand(“spAltaCliente”,conexion);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(“@Id_Articulo”, SqlDbType.Int).Value = textBox1.Text;
cmd.Parameters.Add(“@Id_Proveedor”, SqlDbType.Int).Value = 1;
cmd.Parameters.Add(“@Id_Factura”, SqlDbType.Int).Value = 3;
cmd.Parameters.Add(“@Nom_Articulo”, SqlDbType.VarChar).Value = textBox2.Text;
cmd.Parameters.Add(“@Cantidad “, SqlDbType.Int ).Value = textBox4.Text;
cmd.Parameters.Add(“@Precio_Unitario”, SqlDbType.Money).Value = textBox5.Text;
cmd.Parameters.Add(“@Precio_publico”, SqlDbType.Money).Value = textBox7.Text;
cmd.Parameters.Add(“@Descripcion”, SqlDbType.VarChar).Value = textBox3.Text;
cmd.ExecuteNonQuery();
MessageBox.Show(“Cliente Activado”);
x q pinches borran mi comentario yo tratando de ayudar y vale madre!!!
te borraron tu mensaje por pinche puto chillon por ese motivo mejor ya largate ala chingada
pinche siego ese q pregunta q dond esta l stored procedure de modificar, q no lo vez o q, aprende a leer…
tiener razon ke guey es verdad
hola mi duda esque ya agregue el Data.sqlCliente
pero me sigue marcando errores en cmd y cnn no se a que se deba agradecere mucho su ayuda
pues ke guey eres
Tengo algunos errores que sigue marcando en cmd y cnn no se a que se deba,ya agregue el Data.sqlCliente me puedes ayudar, agradesco tu respuesta.
Gracias amigos por sus valiosos comentarios me an sido de mucha alluda,soy un novato en esto de la programación y me gustaria que ustedes me pudiesen alludar me gustaria algun dia programar como ustedes.
Chisperfec@hotmail.com
para los que quieran agregar los sentencias de SQL lleva dos librerias que son
en c# 2005
using System.data.sqlclient;
using system.data.sqltypes;
hola me gusto su blog , me gustaria mas si pudieran explicar un ejemplo de esto pero en capas.
MUCHISIMAS GRACIASSSSS FUNCIONO DE 10, DE NUEVO GRACIAS!!
=)
hola bola de estupidos pero ke pendejos son enserio kke putos hhhhhhhhhhheeeeeeeeeeeeeeeeeeee
dan pena ajena
que onda.
bueno primero grasias x el ejemplo, me ayudo mucho pero tengo un error algien me podria alludar??
Dim conexion As String = “Data Source=jorge-pc;Initial Equipos=dbDemo;Integrated Security=true”
cnn = New SqlConnection(conexion)
cnn.Open()
utiliso la coneccion y me manda un error
dise que Palabra clave no admitida: ‘Initial equipos’.
y no puedo darle solucion al error
me podrian ayudar xfavor
Ya copie lo que va en cada stored procedure, pero se sigue llamando SotoredrProcedure1, debo ejecutarlo o cómo hago para que tenga el nombre que yo le di?
ola como estan
tengo problemas con la variable conexion
alguien me puede ayudar por favor
les agredecere mucho
No usas Clases ni DAO, BO, GUI, ni Servicios???…. Que rara forma de programar… pero bueno, mientras funcione. Lo digo porque hoy en dia hay que programar en 3 capas.