45 - SqlCommand (insert): Insertar registro


Vimos en el concepto anterior como conectarnos al servidor de SQL Server desde Visual Basic .Net 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

Problema

Implementar una interfaz visual para el alta o carga de registros en la tabla artículos.

Crearemos un proyecto llamado "basededatos2" con la siguiente interfaz visual:

alta registros SqlCommand SQL Server

El código fuente de la aplicación para efectuar altas es:

Imports System.Data.SqlClient

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim conexion As SqlConnection
        conexion = New SqlConnection("server=DIEGO-PC ; database=base1 ; integrated security = true")
        conexion.Open()
        Dim descri As String = TextBox1.Text
        Dim precio As String = TextBox2.Text
        Dim cadena As String = "insert into articulos(descripcion,precio) values ('" & descri & "'," & precio & ")"
        Dim comando As SqlCommand
        comando = New SqlCommand(cadena, conexion)
        comando.ExecuteNonQuery()
        MessageBox.Show("Los datos se guardaron correctamente")
        TextBox1.Text = ""
        TextBox2.Text = ""
        conexion.Close()
    End Sub
End Class

Importamos el espacio de nombres que contiene las clases SqlConnection y SqlCommand:

Imports System.Data.SqlClient

Lo primero que hacemos para el evento Click del botón es definir y crear un objeto de la clase SqlConnection y proceder a abrir la conexión:

        Dim conexion As 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:

        Dim descri As String = TextBox1.Text
        Dim precio As String = TextBox2.Text
        Dim cadena As String = "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 iniciar.

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.

        Dim comando As 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:

alta registros SqlCommand SQL Server

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":

ver registros SQL Server Management Studio

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

ver registros SQL Server Management Studio

Retornar