Hola, he preparado un pequeño ejemplo muy sencillo, tal vez para aquellos que aún estén aprendiendo LINQ y SQL Server, este ejemplo se basa en como manejar datos con LINQ conectándose a un servidor de base de datos como SQLEXPRESS y a una base de datos de control de Alumnos, si quieren crear la tabla desde cero, aquí les dejo el script:
USE bdTecMina GO CREATE TABLE Alumnos ( AlumnoID nvarchar(10), Nombre nvarchar(40), Semestre nvarchar(3), CONSTRAINT "PK_Alumnos" PRIMARY KEY CLUSTERED(AlumnoID), ) INSERT INTO Alumnos VALUES('05231104','Edison García','7') INSERT INTO Alumnos VALUES('05231106','Abraham Gomez García','9') INSERT INTO Alumnos VALUES('05231108','Alejandre Carvajal','7') INSERT INTO Alumnos VALUES('06231110','Luis Armando','10')
Ahora necesitaremos crear un Procedimiento Almacenado llamado InsertarAlumno:
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE dbo.InsertarAlumno ( @AlumnoID nchar(5), @Nombre nvarchar(40), @Semestre nchar(3) ) AS INSERT INTO Alumnos ( AlumnoID, Nombre, Semestre ) VALUES ( @AlumnoID, @Nombre, @Semestre ) GO
Creamos nuestro proyecto Windows Forms, y añadimos un nuevo elemento en el explorador de soluciones (Solution Explorer), y escogemos LINQ TO SQL Classes, pueden colocar cualquier nombre a su datacontext. (dml) a continuación se conectan al servidor de base de datos que tengan instalado, si tienen SQLEXPRESS se conectan y escogen la base de datos bdTecMina o la que hayan creado, y arrastran la Tabla Alumnos al diseñador.
A continuación buscan el Procedimiento Almacenado (Store Procedure) y lo colocan en el espacio que se marca en la figura de abajo.
[Dar clic para agrandar las imágenes]
Seleccionamos a continuación la tabla Alumnos y en sus propiedades seleccionamos Insert.
Seleccionamos el Procedimiento Almacenado que habíamos agregado al diseñador.
Nos vamos a diseñar nuestro formulario, muy simple pero es para hacer las pruebas.
Declaramos nuestro dataContext:
bdSistemaDataContext db = new bdSistemaDataContext();
Agregamos el siguiente código para el botón de Agregar:
private void button1_Click(object sender, EventArgs e) { string AlumnoID = txtID.Text; string Nombre = txtNombre.Text; string Semestre = txtSemestre.Text; try { db.InsertarAlumno(AlumnoID, Nombre, Semestre); db.SubmitChanges(); MessageBox.Show("Se ha agregado correctamente"); } catch (Exception ex) { MessageBox.Show("Ha ocurrido un error"); } finally { txtID.Text = ""; txtNombre.Text = ""; txtSemestre.Text = ""; } }
En donde solo paso los valores de los textBoxs a variables string y de ahi al método del procedimiento almacenado, guardo los cambios y limpio los cuadros de textos.
Después visualizando en el DataGridView el código queda así:
private void button2_Click(object sender, EventArgs e) { var consulta = from alu in db.Alumnos select alu; dataGridView1.Refresh(); dataGridView1.DataSource = consulta.ToList(); }
Hago una pequeña consulta en LINQ mostrando todos los elementos de la tabla Alumnos en el dataGridView.
Damos F5 y tenemos lo siguiente:
Descarga el código de este ejemplo
Saludos, espero este pequeño ejemplo sea de mucha utilidad, nos vemos en otro post con los siguientes métodos.
PD:Si te ha gustado este post, vota por mi blog (mredison.wordpress.com) en http://blogit.ms en la categoría de SQL Server, te lo agradeceré mucho.
Edison Daniel García Chiñas
Microsoft Student Partner | México