79 - SqlCommand (insert): Insertar registro |
Vimos en el concepto anterior como conectarnos al servidor de SQL Server y seleccionar una base de datos. Veremos ahora como pedir que el SQL Server ejecute un comando "INSERT".
Trabajaremos con la base de datos "base1" que creamos en conceptos anteriores y con la tabla "articulos" que también creamos previamente con la estructura:
codigo int primary key identidad descripcion varchar 50 precio float
Implementar una interfaz visual para el alta o carga de registros en la tabla artículos.
Crearemos un proyecto llamado "pruebabasedatos2" con la siguiente interfaz visual:

El código fuente de la aplicación para efectuar altas es:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace PruebaBaseDatos2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SqlConnection conexion = new SqlConnection("server=DIEGO-PC ; database=base1 ; integrated security = true");
conexion.Open();
string descri = textBox1.Text;
string precio = textBox2.Text;
string cadena = "insert into articulos(descripcion,precio) values ('" + descri + "'," + precio + ")";
SqlCommand comando = new SqlCommand(cadena, conexion);
comando.ExecuteNonQuery();
MessageBox.Show("Los datos se guardaron correctamente");
textBox1.Text = "";
textBox2.Text = "";
conexion.Close();
}
}
}
Lo primero que hacemos para el evento Click del botón es crear un objeto de la clase SqlConnection y proceder a abrir la conexión:
SqlConnection conexion = new SqlConnection("server=DIEGO-PC ; database=base1 ; integrated security = true");
conexion.Open();
Tenemos que guardar en la variable cadena un comando INSERT válido tomando los datos ingresados en los dos TextBox:
string descri = textBox1.Text;
string precio = textBox2.Text;
string cadena = "insert into articulos(descripcion,precio) values ('" + descri + "'," + precio + ")";
Como el campo descripción es de tipo varchar debemos incluir las comillas simples:
'" + descri + "'
Y como el precio es float no incluimos las comillas simples:
" + precio + "
Si cargamos por teclado por ejemplo el producto: manzanas y con un precio : 20, luego la variable cadena tiene el valor:
insert into articulos(descripcion,precio) values ('manzanas',20);
Como podemos ver es una forma sencilla de elaborar un comando SQL siempre y cuando tengamos pocos campos que inicializar.
Creamos un objeto de la clase SqlCommand y le pasamos al constructor un string con el comando SQL y la referencia a la conexión.
SqlCommand comando = new SqlCommand(cadena, conexion);
Seguidamente llamamos al método ExecuteNonQuery que procede a comunicarse con el servidor para que se ejecute el comando SQL configurado en la línea anterior:
comando.ExecuteNonQuery();
Ejecutemos el programa y realicemos la carga de un artículo:

Por el momento la única forma que tenemos para consultar la tabla "articulos" es abrir el "Microsoft SQL Server Management Studio" seleccionar la base de datos "base1" y luego presionar el botón derecho del mouse eligiendo la opción "Seleccionar las primeras 1000 filas":

Y de esta forma poder ver los registros que almacena la tabla "articulos":
