Crud con C# y SQL Server | Blog Collective Cloud Peru

Anuncio
Crud con C# y SQL Server | Blog Collective Cloud Peru





Crud con C# y SQL Server
TUTORIALES
JULIO 14, 2015
WinRar
Github
Para los que recién empiezan a desarrollar aplicaciones de escritorio, siempre tienen dudas de
como realizar un CRUD (Create, Read, Update y Delete) de un registro, En esta oportunidad lo
haremos con C# y SQL Server.
Hay muchas formas de hacer un CRUD y con distintos elementos windows forms. Lo
importante es saber hacer un INSERT y luego procederemos con el UPDATE, DELETE y el
SELEC para buscar un registro.
Bueno vamos a por el tutorial.
Crearemos el siguiente formulario con sus botones para cada acción del CRUD:
http://blog.collectivecloudperu.com/crud-con-c-y-sql-server/[06/02/2016 2:15:15 p. m.]
Crud con C# y SQL Server | Blog Collective Cloud Peru
Usaremos los siguientes elementos:
Registro de Clientes
Tipo: Form
Name: frmProductos
StartPosition: CenterScreen
Id
Tipo: TextBox
Name: txtId
ReadOnly: True
Nombre
Tipo: TextBox
Name: txtNombre
CharacterCasing: Upper
MaxLength: 50
Precio
Tipo: TextBox
Name: txtPrecio
CharacterCasing: Upper
MaxLength: 50
Stock
Tipo: TextBox
Name: txtStock
CharacterCasing: Upper
MaxLength: 50
Barra de Botones
Tipo: ToolStrip
Name: toolStrip1
Nuevo
Tipo: ToolStripButton
Name: tsbNuevo
Text: Nuevo
Guardar
Tipo: ToolStripButton
Name: tsbGuardar
Text: Guardar
Cancelar
Tipo: ToolStripButton
Name: tsbCancelar
Text: Cancelar
Eliminar
Tipo: ToolStripButton
Name: tsbEliminar
Text: Nuevo
Separador
Tipo: ToolStripSeparator
Name: toolStripSeparator1
http://blog.collectivecloudperu.com/crud-con-c-y-sql-server/[06/02/2016 2:15:15 p. m.]
Crud con C# y SQL Server | Blog Collective Cloud Peru
Buscar por Id
Tipo: ToolStripLabel
Name: tsbBuscarPorId
Text: Buscar por Id:
Texbox para Buscar por Id
Tipo: ToolStripTextBox
Name: tstId
Buscar
Tipo: ToolStripButton
Name: tsbBuscar
Text: Buscar
Creamos la Base de Datos:
productos.sql(sql_query_crud_produc
tos.sql)
1
create database Productos;
2
3
use Productos;
4
5
create table postres (
6
id int not null identity,
7
nombre varchar(50) not null,
8
precio decimal(6,2),
9
stock float,
10
constraint pk_postres primary key(id)
11 );
Ahora vamos con nuestro código. En los comentarios describo lo que hago en cada bloque de
código:
Nota: En el Github del código fuente, hay un WINRAR en donde esta todo el proyecto
completo. Recuerda que tienes que tener instalado Net Framework 4.5, Microsoft Visual Studio
Comunity 2015 RC y SQL Server 2014, tambien puedes descargarte los archivos en el botón
WinRar que esta al inicio de este tutorial y correr el ejemplo.
Form1.cs
1
// Instancio las Directivas.
2
using System;
3
using System;
4
using System.Collections.Generic;
5
using System.ComponentModel;
6
using System.Data;
7
using System.Drawing;
8
using System.Linq;
http://blog.collectivecloudperu.com/crud-con-c-y-sql-server/[06/02/2016 2:15:15 p. m.]
Crud con C# y SQL Server | Blog Collective Cloud Peru
9
using System.Text;
10
using System.Threading.Tasks;
11
using System.Windows.Forms;
12
using System.Data.SqlClient;
13
14
namespace crud
15
{
16
public partial class frmProductos : Form
17
{
18
// Realizo la Conexión a la Base de Datos
19
string connectionString =
20
@"Server=.\sqlexpress;Database=productos;Trusted_Connection=True;";
21
bool nuevo;
22
23
public frmProductos()
24
{
25
InitializeComponent();
26
}
27
28
// Cargo el Formulario y su estado para cada elemento.
29
private void frmProductos_Load(object sender, EventArgs e)
30
{
31
tsbNuevo.Enabled = true;
32
tsbGuardar.Enabled = false;
33
tsbCancelar.Enabled = false;
34
tsbEliminar.Enabled = false;
35
tstId.Enabled = true;
36
tsbBuscar.Enabled = true;
37
txtNombre.Enabled = false;
38
txtPrecio.Enabled = false;
39
}
40
41
private void txtId_TextChanged(object sender, EventArgs e)
42
{
43
44
}
45
46
private void tsbNuevo_Click(object sender, EventArgs e)
47
{
48
// Cargo el estado para el botón Nuevo y los demás elementos.
49
tsbNuevo.Enabled = false;
50
tsbGuardar.Enabled = true;
51
tsbCancelar.Enabled = true;
52
tsbEliminar.Enabled = false;
53
tstId.Enabled = false;
54
tsbBuscar.Enabled = false;
55
txtNombre.Enabled = true;
56
txtPrecio.Enabled = true;
57
txtStock.Enabled = true;
58
txtNombre.Focus();
59
nuevo = true;
60
}
http://blog.collectivecloudperu.com/crud-con-c-y-sql-server/[06/02/2016 2:15:15 p. m.]
Crud con C# y SQL Server | Blog Collective Cloud Peru
61
62
private void tsbGuardar_Click(object sender, EventArgs e)
63
{
64
// Cuando hago click en el botón Nuevo que proceda la inserción de un
65
registro en la Base de Datos.
66
if (nuevo)
67
{
68
string sql = "INSERT INTO POSTRES (NOMBRE, PRECIO, STOCK)"
69
+ "VALUES ('" + txtNombre.Text + "', '" + txtPrecio.Text
70
+ "', '" + txtStock.Text + "')";
71
72
SqlConnection con = new SqlConnection(connectionString);
73
SqlCommand cmd = new SqlCommand(sql, con);
74
cmd.CommandType = CommandType.Text;
75
con.Open();
76
try
77
{
78
int i = cmd.ExecuteNonQuery();
79
if (i > 0)
80
MessageBox.Show("Registro ingresado correctamente !");
81
}
82
catch (Exception ex)
83
{
84
MessageBox.Show("Erro: " + ex.ToString());
85
}
86
finally
87
{
88
// Cierro la Conexión.
89
con.Close();
90
}
91
}
92
else
93
{
94
// Procedo a realizar la actualización del registro en la Base de
95
Datos.
96
string sql = "UPDATE POSTRES SET NOMBRE='" + txtNombre.Text +
97
"', PRECIO='" + txtPrecio.Text +
98
"', " + "STOCK='" + txtStock.Text + "'";
99
100 SqlConnection con = new SqlConnection(connectionString);
101 SqlCommand cmd = new SqlCommand(sql, con);
102 cmd.CommandType = CommandType.Text;
103 con.Open();
104 try
105 {
106 int i = cmd.ExecuteNonQuery();
107 if (i > 0)
108 MessageBox.Show("Registro actualizado correctamente !");
109 }
110 catch (Exception ex)
111 {
112 MessageBox.Show("Erro: " + ex.ToString());
http://blog.collectivecloudperu.com/crud-con-c-y-sql-server/[06/02/2016 2:15:15 p. m.]
Crud con C# y SQL Server | Blog Collective Cloud Peru
113 }
114 finally
115 {
116 // Cierro la Conexión.
117 con.Close();
118 }
119 }
120 121 // Defino los Estados para los elementos de mi Formulario después de
122 actualizar el registro.
123 tsbNuevo.Enabled = true;
124 tsbGuardar.Enabled = false;
125 tsbCancelar.Enabled = false;
126 tsbEliminar.Enabled = false;
127 tstId.Enabled = true;
128 tsbBuscar.Enabled = true;
129 txtNombre.Enabled = false;
130 txtPrecio.Enabled = false;
131 txtStock.Enabled = false;
132 txtId.Text = "";
133 txtNombre.Text = "";
134 txtPrecio.Text = "";
135 txtStock.Text = "";
136 }
137 138 private void tsbCancelar_Click(object sender, EventArgs e)
139 {
140 // Defino los Estados para los elementos de mi Formulario cuando hago
141 click en el botón Cancelar.
142 tsbNuevo.Enabled = true;
143 tsbGuardar.Enabled = false;
144 tsbCancelar.Enabled = false;
145 tsbEliminar.Enabled = false;
146 tstId.Enabled = true;
147 tsbBuscar.Enabled = true;
148 txtNombre.Enabled = false;
149 txtPrecio.Enabled = false;
150 txtStock.Enabled = false;
151 txtId.Text = "";
152 txtNombre.Text = "";
153 txtPrecio.Text = "";
154 txtStock.Text = "";
155 }
156 157 private void tsbEliminar_Click(object sender, EventArgs e)
158 {
159 // Si hago click en el botón eliminar procedo a eliminar en la Base de
160
Datos.
161 string sql = "DELETE FROM POSTRES WHERE ID=" + txtId.Text;
162 163 SqlConnection con = new SqlConnection(connectionString);
164 SqlCommand cmd = new SqlCommand(sql, con);
http://blog.collectivecloudperu.com/crud-con-c-y-sql-server/[06/02/2016 2:15:15 p. m.]
Crud con C# y SQL Server | Blog Collective Cloud Peru
165 cmd.CommandType = CommandType.Text;
166 con.Open();
167 168 try
169 {
170 int i = cmd.ExecuteNonQuery();
171 if (i > 0)
172 MessageBox.Show("Registro eliminado correctamente !");
173 }
174 catch (Exception ex)
175 {
176 MessageBox.Show("Erro: " + ex.ToString());
177 }
178 finally
179 {
180 // Cierro la Conexión.
181 con.Close();
182 }
183 184 // Defino los Estados para los elementos de mi Formulario cuando hago
185 click en el botón Eliminar.
186 tsbNuevo.Enabled = true;
187 tsbGuardar.Enabled = false;
188 tsbCancelar.Enabled = false;
189 tsbEliminar.Enabled = false;
190 tstId.Enabled = true;
191 tsbBuscar.Enabled = true;
192 txtNombre.Enabled = false;
193 txtPrecio.Enabled = false;
194 txtStock.Enabled = false; 195 txtId.Text = "";
196 txtNombre.Text = ""; 197 txtPrecio.Text = "";
198 txtStock.Text = "";
199 }
200 201 private void tsbBuscar_Click(object sender, EventArgs e)
202 {
203 // Cuando hago click en el botón Buscar, procedo a buscar en la Base
204 de Datos.
205 string sql = "SELECT * FROM POSTRES WHERE ID=" + tstId.Text;
206 207 SqlConnection con = new SqlConnection(connectionString);
208 SqlCommand cmd = new SqlCommand(sql, con);
209 cmd.CommandType = CommandType.Text;
210 SqlDataReader reader;
211 con.Open();
212 213 try
214 {
215 reader = cmd.ExecuteReader();
216 if (reader.Read())
http://blog.collectivecloudperu.com/crud-con-c-y-sql-server/[06/02/2016 2:15:15 p. m.]
Crud con C# y SQL Server | Blog Collective Cloud Peru
217 {
218 // Defino los Estados para los elementos de mi Formulario
219 cuando hago click en el botón Buscar.
220 tsbNuevo.Enabled = false;
221 tsbGuardar.Enabled = true;
222 tsbCancelar.Enabled = true;
223 tsbEliminar.Enabled = true;
224 tstId.Enabled = false;
225 tsbBuscar.Enabled = false;
226 txtNombre.Enabled = true;
227 txtPrecio.Enabled = true;
228 txtStock.Enabled = true;
229 txtNombre.Focus();
230 txtId.Text = reader[0].ToString();
231 txtNombre.Text = reader[1].ToString();
232 txtPrecio.Text = reader[2].ToString();
233 txtStock.Text = reader[3].ToString();
234 nuevo = false;
235 }
236 else
237 MessageBox.Show("Ningun registro encontrado con el Id
238 ingresado !");
239 }
240 catch (Exception ex)
241 {
242 MessageBox.Show("Erro: " + ex.ToString());
243 }
244 finally
245 {
246 // Cierro la Conexión.
247 con.Close();
248 }
249 250 tstId.Text = "";
251 252 }
253 254 private void toolStrip1_ItemClicked(object sender,
ToolStripItemClickedEventArgs e)
{
}
private void btnSalir_Click(object sender, EventArgs e)
{
// Cuando hago click en el botón Salir cierro el formulario.
this.Close();
}
}
}
Listo !
http://blog.collectivecloudperu.com/crud-con-c-y-sql-server/[06/02/2016 2:15:15 p. m.]
Crud con C# y SQL Server | Blog Collective Cloud Peru
Espero les sirva de mucho el Tutorial.
Sígueme en Twitter: @pepoflex
Hasta nuestro siguiente artículo !
http://blog.collectivecloudperu.com/crud-con-c-y-sql-server/[06/02/2016 2:15:15 p. m.]
Descargar