LINQ To SQL Classes Sample
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