Vous êtes sur la page 1sur 3

UNIDAD 5: C# NET INTRODUCION A LAS BASES DE DATOS TEMA 8: C# NET INSERCION O ADICION DE REGISTROS SQL INSERT Insertar o agregar

registros o renglones nuevos a una tabla en disco, es un proc eso sencillo que usa la siguiente instruccin sql: INSERT INTO TABLA(CAMPO1,CAMPO2..) VALUES(VALOR1,VALOR2..); Recordar que solo se esta usando lo minimo de cada instruccin sql, es conveniente estudiar un tutorial de sql. Prog27.aspx <%@ PAGE LANGUAGE=C# %> <%@ Import Namespace="System" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <FORM RUNAT=SERVER> CLAVE<ASP:TEXTBOX ID=CLAVE SIZE=3 RUNAT=SERVER/> NOMBRE<ASP:TEXTBOX ID=NOMBRE SIZE=10 RUNAT=SERVER/> EDAD<ASP:TEXTBOX ID=EDAD SIZE=3 RUNAT=SERVER/> <ASP:BUTTON ONCLICK=INSERTAR TEXT=INSERTAR RUNAT=SERVER /><BR> <ASP:TEXTBOX ID=MENSAJE SIZE=15 RUNAT=SERVER/><BR> </FORM> <script runat=server> // creando y cargando coneccion, adapter, dataset como variables globales OleDbConnection coneccion; DataSet tabla; OleDbDataAdapter adapter; // cargando CLAVE void Page_Load(object sender, EventArgs e) { coneccion=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\\ sites\\www28\\laurosoto\\db\\mibase.mdb"); adapter=new OleDbDataAdapter("select * from tabla1", coneccion); tabla= new DataSet(); adapter.Fill(tabla, "tabla1"); //cargando el nuevo textbox con la nueva clave clave correpondiente int cren=tabla.Tables["tabla1"].Rows.Count; int nvaclave=Int32.Parse(tabla.Tables["tabla1"].Rows[cren-1][0].ToString())+1; CLAVE.Text=nvaclave.ToString(); } void INSERTAR (Object sender, EventArgs e) { // creando y cargando un objeto OLEDBCOMMAND // instruccion sql insert into mitabla(listacampos) values(listadatos) // @variable es una variable de tipo parametro string q="insert into tabla1(clave,nombre,edad) values(@CLAVE, @NOMBRE, @EDAD)"; OleDbCommand orden= new OleDbCommand(q, coneccion); orden.Parameters.Add(new OleDbParameter("@CLAVE", OleDbType.Integer)); orden.Parameters["@CLAVE"].Value = CLAVE.Text; orden.Parameters.Add(new OleDbParameter("@NOMBRE", OleDbType.VarWChar, 20)); orden.Parameters["@NOMBRE"].Value = NOMBRE.Text; orden.Parameters.Add(new OleDbParameter("@EDAD", OleDbType.Integer)); orden.Parameters["@EDAD"].Value = EDAD.Text;

orden.Connection.Open(); orden.ExecuteNonQuery(); orden.Connection.Close(); MENSAJE.Text="REGISTRO INSERTADO"; } </script> corrida prog27.aspx image271.jpg notas: Se agregaron tres textboxs arriba del datagrid para capturar los nuevos datos a insertar en la tabla. En page_Load es el mismo codigo del programa anterior solo al final se usa el me todo row.count de dataset.tables[recuerdan la nota 8 del tema anterior] para con ocer cuantos renglones tiene la tabla Con esta informacin ya se puede leer la primera columna ( la cero 0 desde luego) para sacar el dato de la ultima clave Luego se lee el ultimo renglon de la tabla con el metodo dataset.tables[].rows[r eng][col] Es importante que se entienda que con este formato dataset.tables[].rows[reng]co l] se puede leer o cargar(GET-SET) cualquier celda o columna de la tabla Se desconto uno de la cantidad de renglones porque en tablas el primer renglon e s el(???? Cero ????se acuerdan) El metodo devolvio el valor de la ultima clave que esta en el ultimo renglon de la tabla, pero en string Al final se incremento en uno la variable entera para obtener el valor de la nue vaclave o clavesiguiente, misma que se cargo en el textbox correspondiente En funcin INSERTAR(), se crea la string q con el formato apropiado sql( como se d ijo al principio de este tema), observar que existen tres variables que llevan u n @ antes, estas variables se llaman VARIABLES PARAMETROS, y se cargan con el ob jeto command.parameters() Otra vez, en este ejemplo para mandar la instruccin sql a la base de datos se cre a y se usa un objeto command(llamado orden) que lleva como datos la string q y l a coneccion, pero se agregan tres metodos command.parametro (orden.parameters()) , en estos metodos se cargan las variables parametro primero con el valor de dat o del textbox asp y luego se transforman al tipo de dato apropiado usando los ol edbtype(que hay que estudiar porque se tienen que asociar directamente a los tip os de datos que se usaron en access) Ya con el objeto COMMAND(orden) listo y cargado para comunicar la instruccion sq l a la base de datos se abre la coneccion a la base de datos se manda el execute nonquery(no se quiere regresar nada en esta parte, recordar la nota respectiva q ue se dio en un tema anterior) y se cierra la coneccion y si dios quiere ya se m ando el nuevo rengln a la base de datos en disco. Al final de esta funcin INSERTAR, como ya se hizo un cambio en la base de datos, se tiene que volver a cargar el dataset con la nueva informacin(es el mismo codig

o que se tiene en page_load) mas tantito codigo para limpiar y cargar los textbo xs. TAREAS PROGRAMACION C# NET 1.- construir muchos programas de inserccion en las tablas de las bases de datos que tengan construidas???

Vous aimerez peut-être aussi