UNIDAD 5: VISUAL WEB DEVELOPER 2005 C# LAS BASES DE DATOS

TEMA 8: C# INSERCION REGISTROS SQL INSERT

Insertar o agregar registros o renglones nuevos a una tabla en disco, es un proceso sencillo que usa la siguiente instruccion sql:

INSERT INTO TABLA (CAMPO1,CAMPO2..) VALUES(VALOR1,VALOR2..);

Recordar que solo se esta usando lo minimo de cada instruccion sql, es conveniente estudiar un tutorial de sql.

Tambien recordar que INSERT, UPDATE y DELETE van dentro de un objeto COMMAND.

Programa

<%@ Page Language="C#" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
// CONTADOR ES UNA VARIABLE GLOBAL
int cont = 0;
protected void Button1_Click(object sender, EventArgs e)
{
// creando y cargando objetos
SqlConnection CANAL;
SqlCommand ORDEN;
// aqui es donde se usa la string de coneccion
// y abriendo la coneccion
CANAL=new SqlConnection(" Persist Security Info=True;User ID=lsoto;Password=TUPASSWORD;Initial Catalog=lsoto;Data Source=sql13.hostbasket.com");
// creando y cargando un objeto SQLCOMMAND
// instruccion sql insert into tabla1(listacampos) values(listadatos)
// @variable es una variable de tipo parametro
string q = "insert into tabla1(nombre,edad,estatura) values(@NOMBRE, @EDAD, @ESTATURA)";
ORDEN = new SqlCommand(q, CANAL);
// cargando dos parametros por cada textbox
ORDEN.Parameters.Add(new SqlParameter("@NOMBRE", SqlDbType.NVarChar, 20));
ORDEN.Parameters["@NOMBRE"].Value = NOMBRE.Text;
ORDEN.Parameters.Add(new SqlParameter("@EDAD", SqlDbType.Int));
ORDEN.Parameters["@EDAD"].Value = EDAD.Text;
ORDEN.Parameters.Add(new SqlParameter("@ESTATURA", SqlDbType.Float));
ORDEN.Parameters["@ESTATURA"].Value = ESTATURA.Text;
// mandando sql a la base de datos
ORDEN.Connection.Open();
ORDEN.ExecuteNonQuery();
ORDEN.Connection.Close();
// limpiando TEXTBOXS para otra inserccion
NOMBRE.Text=" ";
EDAD.Text = " ";
ESTATURA.Text = " ";
// avisando inserccion
cont = cont + 1;
Label5.Text = "REGISTRO no: " + cont.ToString() + " Insertado";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>BASES DE DATOS </title>
</head>
<body>
<form id="form1" runat="server">
&nbsp;&nbsp; &nbsp; &nbsp;<asp:Label ID="Label1" runat="server" Text="INSERCCION REGISTROS"></asp:Label><br />
<asp:Label ID="Label2" runat="server" Text="NOMBRE"></asp:Label>
<asp:TextBox ID="NOMBRE" runat="server"></asp:TextBox><br />
<br />
<asp:Label ID="Label3" runat="server" Text="EDAD"></asp:Label>
<asp:TextBox ID="EDAD" runat="server"></asp:TextBox><br />
<br />
<asp:Label ID="Label4" runat="server" Text="ESTATURA"></asp:Label>
<asp:TextBox ID="ESTATURA" runat="server"></asp:TextBox><br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="ADD REGISTRO" /><br />
<asp:Label ID="Label5" runat="server" Text="Label"></asp:Label>
<br />
<br />
&nbsp;
</form>
</body>
</html>

Corrida:

image483.jpg

Notas:

Se agregaron tres textboxs arriba para capturar los nuevos datos a insertar en la tabla.

RECORDAR QUE CAMPO CLAVE ES DE TIPO IDENTITY Y MS SQL SERVER 2000 SE ENCARGA DE INCREMENTARLO POR SU CUENTA.

En funcion INSERTAR(), se crea la string q con el formato apropiado sql( como se dijo al principio de este tema), observar que existen tres variables que llevan un @ antes, estas variables se llaman VARIABLES PARAMETROS, y se cargan con el objeto command.parameters()

Otra vez, en este ejemplo para mandar la instruccion sql a la base de datos se crea y se usa un objeto command (llamado orden) que lleva como datos la string q y la coneccion, pero se deben agregar dos metodos command.parameters (orden.parameters()) por cada textbox que se vaya a enviar a la tabla de la base de datos , en estos metodos se cargan las variables parametro primero con el valor de dato del textbox y luego se transforman al tipo de dato apropiado usando los sqldbtype (mismos que lospueden obtener del disenador de paginas que estan usando mucho para construir los programas ?verdad? ).

Ya con el objeto COMMAND(orden) listo y cargado para comunicar la instruccion sql a la base de datos se abre la coneccion a la base de datos se manda el executenonquery(no se quiere regresar en esta parte, recordar la nota respectiva que se dio en un tema anterior) y se cierra la coneccion y si dios quiere ya se mando el nuevo renglon a la base de datos en disco.

Para asegurarse que ya se efectuo la inserccion en la base de datos, se tendra que usar el programa de consulta o despliegue (SELECT) de el tema anterior

TAREAS PROGRAMACION VISUAL WEB DEVELOPER 2005 C#

1.- Construir muchos programas de inserccion en las tablas que tengan construidas

2.- Ir Preparando una pagina de MENU que contenga las opciones de consulta (select) e inserccion (INSERT) para una tabla ( pueden ser procedimientos o paginas enlazadas).

Politica de Privacidad