Separata

31
Mantenimiento a una tabla hecha en SQL mediante códigos en vb.net Publicado el 16 agosto, 2011 por Cesar Magallanes Vega Hola amigos les saluda luxcel, En esta ocasión Les publicare como darle mantenimiento a una tabla hecha en SQL mediante códigos en vb.net Lo que vamos a crear a continuación es una solución, desarrollado con un estilo orientado a capas… y de forma conectada- ¿Forma Conectada? Este hace referencia a una conexión física establecida con el servidor de datos durante todo momento para poder efectuar cualquier consulta o actualización sobre los datos. VENTAJAS DESVENTAJAS * Al haber una única conexión a la base de datos por usuario, o incluso a veces por aplicación, establecida permanentemente, puede llegar a resultar más sencillo la seguridad y el acceso al servidor de datos. Lo mismo ocurre con el control de concurrencia: en un escenario donde múltiples usuarios se estuvieran conectando y desconectando permanentemente para realizar distintas acciones, este control seria más difícil * Se requiere una conexión abierta todo el tiempo con el servidor de base de datos, lo cual consume recursos innecesariamente si no se la esta utilizando. * La escalabilidad del acceso a los datos se ve limitada por la cantidad de conexiones establecidas simultáneamente contra el servidor de base de datos.

description

Net

Transcript of Separata

Mantenimiento a una tabla hecha en SQL mediante cdigos en vb

Mantenimiento a una tabla hecha en SQL mediante cdigos envb.net

Publicado el16 agosto, 2011porCesar Magallanes VegaHola amigos les saludaluxcel,

En esta ocasin Les publicare como darle mantenimiento a una tabla hecha en SQL mediante cdigos envb.netLo que vamos a crear a continuacin es una solucin, desarrollado con un estilo orientado a capas y de forma conectada-

Forma Conectada?Este hace referencia a una conexin fsica establecida con el servidor de datos durante todo momento para poder efectuar cualquier consulta o actualizacin sobre los datos.

VENTAJASDESVENTAJAS

* Al haber una nica conexin a la base de datos por usuario, o incluso a veces por aplicacin, establecida permanentemente, puede llegar a resultar ms sencillo la seguridad y el acceso al servidor de datos.

Lo mismo ocurre con el control de concurrencia: en un escenario donde

mltiples usuarios se estuvieran conectando y desconectando

permanentemente para realizar distintas acciones, este control seria ms difcil

de llevar.

* Siempre la aplicacin tiene accesos a los datos actualizados.* Se requiere una conexin abierta todo el tiempo con el servidor de base de datos, lo cual consume recursos innecesariamente si no se la esta utilizando. * La escalabilidad del acceso a los datos se ve limitada por la cantidad de conexiones establecidas simultneamente contra el servidor de base de datos.

Bueno una vez sabido esto empecemos a disear crearemos nuestra base de datos requerida para esta solucin:

Para este ejemplo crearemos una base de datos, la cual la llamaremos Matricula Y poseer una tabla alumno:

Luego crearemos nuestra solucin, lo crearemos tal como le explique en la pgina anterior, quedando de la siguiente manera:

Ahora para empezar a trabajar tenemos que dar la conexin a nuestra base de datos a utilizar, codificando en la Biblioteca DAL:

Luego En la Biblioteca Bean, no les muestro el cdigo ya que es redundante volver a explicar, pues ya lo explique en la pgina anterior.

Esta dems decir que por cada tabla se creara una clase en la biblioteca BEANAhora vallamos a la biblioteca DAO:

En esta Biblioteca irn todas las operaciones o mtodos a ejecutar (Ingresar, actualizar, eliminar, seleccionar), al igual que Bean debemos crear una clase por cada tabla creada, pues casi todas las tablas necesitan tener mantenimientos, pero en esta ocasin solo crearemos una llamndola Alumnodao;

Si bien ya saben que tenemos que darle una referencia con las bibliotecas Bean (Nos permiten interactuar con las variables o campos) y Dal (permite la conexin a la base de datos).

Haaaaaaaa antes de agregar los mtodos debemos de importar a la biblioteca referenciadas, y tambin a nuestra biblioteca que nos brindaran mtodos propios devb.net(Sytem.Data.Sqlclient)

Empecemos.

Creamos el mtodoMostrar: nos traer toda la tabla con los registros agregados para poderlo ver en nuestra aplicacin

PublicFunctionmostrar()AsDataSet

DimcnnAsNewDBAcces

DimdsAsNewDataSetcnn.conectar()

DimdaAsNewSqlDataAdapter(select * from Alumno,cnn.cs)da.Fill(ds)

Returnds

EndFunctionMtodoInsertar:este mtodo creo que no es necesario explicarle su funcin, pues es obvia.PublicFunctioninsertar(ByValaAsBEAN.AlumnoBean)AsDataSetDimcnnAsNewDBAccesDimdsAsNewDataSetcnn.conectar()DimdaAsNewSqlDataAdapter(INSERT INTO alumno(idAlumno,nombreAlumno,apellidoP,apellidoM,sexo,edad,direccion,telefono)VALUES (& a.Getcodigo &,'& a.Getnombre &,'& a.Getapepat &,'& a.Getapemat &,'& a.Getsexo &,& a.Getedad &,'& a.Getdireccion &,'& a.Gettelefono &) ,cnn.cs)da.Fill(ds)ReturndsEndFunctionMetodoActualizar:PublicFunctionactualizar(ByValaAsBEAN.AlumnoBean)AsDataSetdimcnnAsNewDBAcces

DimdsAsNewDataSetcnn.conectar()DimdaAsNewSqlDataAdapter(update Alumno set nombreAlumno='& a.Getnombre &,apellidoP='& a.Getapepat &,apellidoM='& a.Getapemat &,sexo='& a.Getsexo &,edad=& a.Getedad &,direccion='& a.Getdireccion &,telefono='& a.Gettelefono & where idAlumno=& a.Getcodigo,cnn.cs)da.Fill(ds)

Returnds

EndFunctionMetodoEliminar:PublicFunctioneliminar(ByValaAsBEAN.AlumnoBean)AsDataSet

DimcnnAsNewDBAcces

DimdsAsNewDataSetcnn.conectar()

DimdaAsNewSqlDataAdapter(delete Alumno where idAlumno=& a.Getcodigo,cnn.cs)da.Fill(ds)

Returnds

EndFunctionLuego de a ver hecho ello nos vamos a nuestro design en la cual crearemos un formulario as:

Para que nos muestre todos los alumnos o los datos que tenemos almacenado:

Para ello en el load codifiquemos lo siguiente:

Llamaremos a la biblioteca dao, crendole un objeto, la cual nos permitir invocar al mtodo antes creado MostrarImportsDAOPublicClassAlumnodesig

PrivateSubAlumnodesig_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load

DimalAsNewAlumnoDaoDataGridView1.DataSource = al.mostrar.Tables(0)

EndSubEndClassEjecutemos y vean que nos muestra

As es nos muestra todos los datos almacenado en nuestra tabla.

Ahora de mosle mantenimiento a dicha tabla:

Lo primero es aadir otro Windows form a nuestro proyecto Designe, quedando de la siguiente manera:

Como vern en este formulario podemos darle el mantenimiento respectivo a nuestra tabla.

A continuacin codifiquemos esto en el button guardar:

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click

DimbaAsNewAlumnoBeanba.setcodigo(txtcod.Text)ba.setnombre(txtnombre.Text)ba.setapepat(txtapepat.Text)ba.setapemat(txtapemat.Text)ba.setsexo(txtsexo.Text)ba.setedad(txtedad.Text)ba.settelefono(txttelefono.Text)ba.setdireccion(txtdireccion.Text)

DimdaAsNewAlumnoDaoda.insertar(ba)vergrilla()EndSub

Como pueden ver utilizamos en esta ocacion ala biblioteca vean para llenar los set antes creados y luego otro objeto a la clase AlumnoDao perteneciente a la biblioteca Dao, invocamos el mtodo insertar y le agregamos atreves del objetoba,todos los datos ingresados.

Ahora Codifiquemos en button Actualizar:

PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click

DimbaAsNewAlumnoBeanba.setcodigo(txtcod.Text)ba.setnombre(txtnombre.Text)ba.setapepat(txtapepat.Text)ba.setapemat(txtapemat.Text)ba.setsexo(txtsexo.Text)ba.setedad(txtedad.Text)ba.settelefono(txttelefono.Text)ba.setdireccion(txtdireccion.Text)

DimdaAsNewAlumnoDaoda.actualizar(ba)vergrilla()Button1.Enabled =TrueButton2.Enabled =False

EndSubtAs como el button guardar el actualizar es casi parecido solo se invoca al mtodo Actualizar.

Button Eliminar:

DimbaAsNewAlumnoBeanba.setcodigo(txtcod.Text)

DimdaAsNewAlumnoDaoda.eliminar(ba)vergrilla()Button1.Enabled =TrueButton2.Enabled =False

Bueno como podrn apreciar en todos los botones hay un pequeo cdigovergrilla ();Es un pequeo mtodo que e creado dentro del formulario para poder invocar al seleccionar, es decir llamar al mtodo Mostrar que hemos creado en el Alumnodao;

Cuyo cdigo es el siguiente:

PublicSubvergrilla()

DimalAsNewDAO.AlumnoDaoDataGridView1.DataSource = al.mostrar().Tables(0)

EndSubSEMANA 03 - 04 - MANTENIMIENTO CON VB.NETSEMANA 04DESARROLLA LA SIGUIENTE IMPLEMENTACION PRESENTAR EN FOLDER -LABORATORIO HASTA EL 10 DE SETIEMBRE DE 2012

OBJETIVO:EN LA SIGUIENTE IMPLEMENTACION VAMOS HACER USO DE ERWIN PARA MODELAR LA TABLA RELACIONAL Y OBTENER SQL SCRIPT, Y SISTEMATIZAR CON VB.NET CON CADENAS DE CONEXION.

CODIFICACINEN SQL SCRIPT-- CREACION DE BASE DE DATOS (DATA y LOG)USEmasterIFEXISTS(SELECT*FROMsysdatabasesWHEREname='Bdfactura')beginDROPDATABASEBDFACTURAendCREATEDATABASEBDFACTURAGOUSEBDFACTURAGO-- Creacion de las TablasIFEXISTS(SELECTNAMEFROMSYSOBJECTSWHERENAME='Articulos'ANDTYPE='U')DROPtable ArticulosCREATETABLEArticulos( art_codigovarchar(5)NOTNULLPrimarykey, art_nombrevarchar(30)NULL, art_unidadvarchar(4)NULL, art_precionumeric(10,2)NULL, art_stockintNULL)GOIFEXISTS(SELECTNAMEFROMSYSOBJECTSWHERENAME='Clientes'ANDTYPE='U')DROPtable ClientesCREATETABLEClientes( cli_codigovarchar(5)NOTNULLPrimaryKey,cli_nombrevarchar(25)NULL, cli_telefononumeric(7,0)NULL, cli_rucnumeric(11,0)NULL, cli_direccionvarchar(30)NULL)GOIFEXISTS(SELECTNAMEFROMSYSOBJECTSWHERENAME='Fac_Cabe'ANDTYPE='U')DROPtable Fac_cabeCREATETABLEFac_cabe( fac_numerovarchar(12)NOTNULLPrimaryKey,fac_fechadatetimeNULL, cli_codigovarchar(5)NULL,fac_igvvarchar(1)NULL)GOIFEXISTS(SELECTNAMEFROMSYSOBJECTSWHERENAME='Fac_deta'ANDTYPE='U')DROPtable Fac_detaCREATETABLEFac_deta( fac_numerovarchar(12)NOTNULL, art_codigovarchar(5)NOTNULL, art_cantidadintNULL,PrimaryKey(Fac_numero,art_codigo))GO-- Ingreso de Data a las TablasINSERTINTOclientesVALUES('C0001','LAURA MORENO LEE ',1234567,54336725321,'Av. La Marina 1234')INSERTINTOclientesVALUES('C0002','ALEJANDRO MORENO ',6584503,56325236234,'Av. Pardo 456 ')INSERTINTOclientesVALUES('C0003','CLAUDIA LEE ',5674566,67836768957,'Av. Principal 123 ')INSERTINTOclientesVALUES('C0005','PERCY OBANDO ',6789453,34532523458,'Calle San Pedro 134')INSERTINTOclientesVALUES('C0007','MIGUEL NARVA ',5678356,45622462572,'Jr. Naranjos 5689')INSERTINTOclientesVALUES('C0008','CLAUDIO PARDO ',7894568,56632545357,'Av.Habich 543 ')INSERTINTOclientesVALUES('C0009','MONICA GONZALES ',7894073,67233674566,'Av.Iquitos 228 ')INSERTINTOclientesVALUES('C0011','JHON MORALES ',7685704,64223253459,'Calle Cueva 432 ')INSERTINTOclientesVALUES('C0012','FERNANDO REDONDO ',6789456,24623325742,'Av. Javier Prado 114')INSERTINTOclientesVALUES('C0013','GABRIELA ZAPATA ',5678466,72313254560,'Jr. Pio XII 112 ')INSERTINTOclientesVALUES('C0015','SANDRA CAMPOS ',4563457,67362577361,'Jr. Dominico 554')INSERTINTOclientesVALUES('C0016','MIGUEL RAMIREZ ',7460647,45632573556,'Jr. Salavery 876 ')INSERTINTOclientesVALUES('C0018','RAUL MORIENTES ',8975783,65362533671,'Av. Habich 4567 ')INSERTINTOclientesVALUES('C0019','EUGENIO CAMPOS ',9583569,54673356250,'Av. Wilson 678 ')INSERTINTOclientesVALUES('C0020','LUCILA PARDO ',6546534,53476250977,'Av. Pardo 567 ')INSERTINTOclientesVALUES('C0021','ROBERTO BAGGIO ',2678958,87662554325,'Av. Wilson 1267 ')SELECT*FROM clientesORDERBYcli_codigoINSERTINTOarticulosVALUES('A0001','MOUSE GENIOUS ','UNI',25,235)INSERTINTOarticulosVALUES('A0002','PENTIUM III 600 ','UNI',150,220)INSERTINTOarticulosVALUES('A0004','FUNDAS NAYLON ','MTS',40,35)INSERTINTOarticulosVALUES('A0005','MEMORIA ZIP 32 ','UNI',60,80)INSERTINTOarticulosVALUES('A0006','TINTA BJC21 B/N ','KG',20,20)INSERTINTOarticulosVALUES('A0007','IMPRESORA EPSON 1234','UNI',355,120)INSERTINTOarticulosVALUES('A0008','MONITOR SYNMASTER 3N','UNI',300,33)INSERTINTOarticulosVALUES('A0009','MONITOR VIEWSONIC ','UNI',450,92)INSERTINTOarticulosVALUES('A0010','PENTIUM MMX 260 ','UNI',120,97)INSERTINTOarticulosVALUES('A0011','MOUSE MICROSOFT ','UNI',50,320)INSERTINTOarticulosVALUES('A0012','MEMORIA DIMM 64 ','UNI',80,25)INSERTINTOarticulosVALUES('A0014','IMPRESORA CANON 1000','UNI',205,200)INSERTINTOarticulosVALUES('A0016','TINTA BJC21 COLOR ','KG',20,120)INSERTINTOarticulosVALUES('A0019','TECLADO EPSON 102 ','UNI',75,122)INSERTINTOarticulosVALUES('A0020','MOUSE TECH ','UNI',30,190)SELECT*FROM articulosORDERBYart_nombreINSERTINTOfac_cabeVALUES('F0001','02/02/2000','C0007','S')INSERTINTOfac_cabeVALUES('F0002','03/04/2000','C0005','S')INSERTINTOfac_cabeVALUES('F0003','03/05/2000','C0016','N')INSERTINTOfac_cabeVALUES('F0004','08/12/2000','C0002','S')INSERTINTOfac_cabeVALUES('F0005','08/06/2000','C0005','N')INSERTINTOfac_cabeVALUES('F0006','09/12/2000','C0002','N')INSERTINTOfac_cabeVALUES('F0007','10/09/2000','C0016','N')INSERTINTOfac_cabeVALUES('F0008','12/02/2000','C0005','S')INSERTINTOfac_cabeVALUES('F0009','12/11/2000','C0020','N')INSERTINTOfac_cabeVALUES('F0010','01/06/2001','C0005','N')INSERTINTOfac_cabeVALUES('F0011','01/07/2001','C0012','N')INSERTINTOfac_cabeVALUES('F0012','01/11/2001','C0012','S')INSERTINTOfac_cabeVALUES('F0013','02/10/2001','C0002','S')INSERTINTOfac_cabeVALUES('F0014','02/01/2001','C0011','S')INSERTINTOfac_cabeVALUES('F0015','03/12/2001','C0018','N')INSERTINTOfac_cabeVALUES('F0016','03/03/2001','C0012','S')INSERTINTOfac_cabeVALUES('F0017','03/08/2001','C0001','N')INSERTINTOfac_cabeVALUES('F0018','03/01/2002','C0002','N')INSERTINTOfac_cabeVALUES('F0019','11/01/2002','C0001','S')INSERTINTOfac_cabeVALUES('F0020','05/01/2002','C0002','N')INSERTINTOfac_cabeVALUES('F0021','07/01/2002','C0003','S')INSERTINTOfac_cabeVALUES('F0022','12/02/2002','C0004','N')INSERTINTOfac_cabeVALUES('F0023','10/02/2002','C0005','S')INSERTINTOfac_cabeVALUES('F0024','09/02/2002','C0004','N')INSERTINTOfac_cabeVALUES('F0025','03/03/2002','C0005','S')INSERTINTOfac_cabeVALUES('F0026','05/03/2002','C0004','N')SELECT*FROMfac_cabeINSERTINTOfac_detaVALUES('F0001','A0007',3)INSERTINTOfac_detaVALUES('F0001','A0001',2)INSERTINTOfac_detaVALUES('F0002','A0002',16)INSERTINTOfac_detaVALUES('F0002','A0004',4)INSERTINTOfac_detaVALUES('F0002','A0005',6)INSERTINTOfac_detaVALUES('F0003','A0004',5)INSERTINTOfac_detaVALUES('F0004','A0007',3)INSERTINTOfac_detaVALUES('F0005','A0006',12)INSERTINTOfac_detaVALUES('F0005','A0010',11)INSERTINTOfac_detaVALUES('F0005','A0011',4)INSERTINTOfac_detaVALUES('F0005','A0014',11)INSERTINTOfac_detaVALUES('F0006','A0007',13)INSERTINTOfac_detaVALUES('F0007','A0020',23)INSERTINTOfac_detaVALUES('F0008','A0020',2)INSERTINTOfac_detaVALUES('F0009','A0001',2)INSERTINTOfac_detaVALUES('F0010','A0006',8)INSERTINTOfac_detaVALUES('F0010','A0005',7)INSERTINTOfac_detaVALUES('F0010','A0011',5)INSERTINTOfac_detaVALUES('F0011','A0005',6)INSERTINTOfac_detaVALUES('F0011','A0004',4)INSERTINTOfac_detaVALUES('F0011','A0010',13)INSERTINTOfac_detaVALUES('F0012','A0002',14)INSERTINTOfac_detaVALUES('F0013','A0014',21)INSERTINTOfac_detaVALUES('F0014','A0014',2)INSERTINTOfac_detaVALUES('F0015','A0007',3)INSERTINTOfac_detaVALUES('F0016','A0014',2)INSERTINTOfac_detaVALUES('F0016','A0006',5)INSERTINTOfac_detaVALUES('F0017','A0006',7)INSERTINTOfac_detaVALUES('F0017','A0011',5)INSERTINTOfac_detaVALUES('F0018','A0012',4)INSERTINTOfac_detaVALUES('F0018','A0001',1)INSERTINTOfac_detaVALUES('F0018','A0004',4)INSERTINTOfac_detaVALUES('F0018','A0005',11)INSERTINTOfac_detaVALUES('F0019','A0008',13)INSERTINTOfac_detaVALUES('F0019','A0007',6)INSERTINTOfac_detaVALUES('F0019','A0006',7)INSERTINTOfac_detaVALUES('F0020','A0007',6)INSERTINTOfac_detaVALUES('F0020','A0009',15)INSERTINTOfac_detaVALUES('F0021','A0009',11)INSERTINTOfac_detaVALUES('F0021','A0004',2)INSERTINTOfac_detaVALUES('F0021','A0007',3)INSERTINTOfac_detaVALUES('F0022','A0001',4)INSERTINTOfac_detaVALUES('F0023','A0003',5)INSERTINTOfac_detaVALUES('F0023','A0006',7)INSERTINTOfac_detaVALUES('F0024','A0007',13)INSERTINTOfac_detaVALUES('F0024','A0003',15)INSERTINTOfac_detaVALUES('F0025','A0008',11)INSERTINTOfac_detaVALUES('F0026','A0010',4)INSERTINTOfac_detaVALUES('F0026','A0011',3)select*fromarticulosselect*fromclientesselect*fromfac_cabeselect*fromfac_detaIMPLEMENTACION CON VB.NET DESARROLLO DE FORMULARIOS:

CREAMOS EL MODULO DE CONEXINY UNA FUNCINDE CONSULTA POR MEDIO DE TABLA DE DATOSModuleModule1PublicCNAsNewSqlConnection("Integrated Security=True;Initial Catalog=BDFactura;data source=a3_16")FunctionCargarDatos(ByValCadSQLAsString)AsDataTableDimDaAsNewSqlDataAdapter(CadSQL, CN)DimTablaAsNewDataTable Da.Fill(Tabla)ReturnTablaEndFunctionEndModuleASMISMO AHORA CODIFICA LOS EVENTOS DEL FORMULARIOPublicClassForm1DimDvClienteAsNewDataViewDimDvArticulosAsNewDataViewDimTablaAsNewDataTablePrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadDvCliente = CargarDatos("Select * from Clientes").DefaultView DvCliente.Sort ="Cli_Codigo" DvArticulos = CargarDatos("Select * from articulos").DefaultView DvArticulos.Sort ="Art_Codigo"'Creando tabla TemporalTabla.Columns.Add("CodArti",GetType(String)) Tabla.Columns.Add("NomArti",GetType(String)) Tabla.Columns.Add("Precio",GetType(Double)) Tabla.Columns.Add("Canti",GetType(Integer)) Tabla.Columns.Add("Monto",GetType(Double))Me.DataGridView1.DataSource = TablaEndSubPrivateSubcmdagregar_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlescmdagregar.ClickDimFAsDataRow F = Tabla.NewRow F("CodArti") =Me.TxtCodArti.Text F("NomArti") =Me.TxtNomArti.Text F("Precio") =Me.txtprecio.Text F("Canti") =Me.txtcanti.Text F("Monto") = F("precio") * F("Canti") Tabla.Rows.Add(F)EndSubPrivateSubtxtcodcli_KeyPress(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.KeyPressEventArgs)Handlestxtcodcli.KeyPressIfAsc(e.KeyChar) = 13ThenDimPAsInteger P = DvCliente.Find(Me.txtcodcli.Text)IfP < 0Then MessageBox.Show("Cliente no existe...")ElseMe.txtnomcli.Text = DvCliente.Item(P).Row("Cli_nombre")Me.txtruccli.Text = DvCliente.Item(P).Row("Cli_ruc")Me.txtdircli.Text = DvCliente.Item(P).Row("Cli_direccion")EndIfEndIfEndSubPrivateSubcmdeliminar_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlescmdeliminar.ClickDimpAsInteger p =Me.DataGridView1.CurrentRow.Index Tabla.Rows(p).Delete()EndSubPrivateSubTxtCodArti_KeyPress(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.KeyPressEventArgs)HandlesTxtCodArti.KeyPressIfAsc(e.KeyChar) = 13ThenDimPAsInteger P = DvArticulos.Find(Me.TxtCodArti.Text)IfP < 0Then MessageBox.Show("Articulo no existe")ElseMe.TxtNomArti.Text = DvArticulos.Item(P).Row("Art_nombre")Me.txtprecio.Text = DvArticulos.Item(P).Row("Art_Precio")Me.txtstock.Text = DvArticulos.Item(P).Row("Art_Stock")EndIfEndIfEndSubPrivateSubcmdgrabar_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlescmdgrabar.ClickDimIAsIntegerDimCmdAsNewSqlCommandIfCN.State = ConnectionState.ClosedThen CN.Open()EndIf Cmd.Connection = CN'Grabando Cabecera Cmd.CommandText ="Insert into fac_cabe values(@num,@fec,@clicod,@igv)" Cmd.Parameters.Add("@num", SqlDbType.VarChar, 5).Value =Me.txtnum.Text Cmd.Parameters.Add("@fec", SqlDbType.DateTime).Value =Date.Today Cmd.Parameters.Add("@clicod", SqlDbType.VarChar, 5).Value =Me.txtcodcli.Text Cmd.Parameters.Add("@igv", SqlDbType.VarChar, 1).Value ="S"Cmd.ExecuteNonQuery()'Grabando DetalleForI = 0ToTabla.Rows.Count - 1 Cmd.Parameters.Clear() Cmd.CommandText ="Insert into fac_deta values(@numDETA,@codarti,@canti)" Cmd.Parameters.Add("@numDETA", SqlDbType.VarChar, 5).Value =Me.txtnum.Text Cmd.Parameters.Add("@codarti", SqlDbType.VarChar, 5).Value = Tabla.Rows(I).Item("CodArti") Cmd.Parameters.Add("@canti", SqlDbType.Int).Value = Tabla.Rows(I).Item("Canti") Cmd.ExecuteNonQuery()NextIfCN.State = ConnectionState.OpenThen CN.Close()EndIf Cmd.Dispose()EndSubEndClassSemana 04 - Funciones del Sistema: Explicitas e Implicitas(TDW)SEMANA 04FUNCIONES DE CADENAS IMPLCITAS- FECHAS DEL SISTEMA

FuncionesImplcitasde cadenas:

varcar=charAt(index);Funcion que devuelve el caracter que se encuentra en la posicin index. donde Index inicia de 0.

varcad = substring(numero);A partir de una cadena extrae los caracteres especificados en Numero.

varcad = substring(pos1,pos2);A partir de una posicion de cadena pos1 extrae los caracteres especificados en pos2.

varint = cad.length();1. Devuelve un numero entero que es la longitud de caracteres que contiene la cadena de texto varcad = cad.ToUpperCase();Convierte a maysculala cadena cad y lo asigna a otra subcadena

varcad = cad.ToLowerCase();Convierte aMinscula la cadena cad y lo asigna a la subcadena.

cad = cad.trim();Suprime espacios en blanco antes odespusde la cadena(por el lado izquierdo o derecha de la cadena)

cad.append()Permite insertar una subcadena a una cadena, pertenece a los explicitos constructores de clases.

cad.insert();Inserta un segmento de cadena a otra cadena grande, pertenece a los explicitos constructores de clases.Ejemplo 01Creacin de una clase: Para contabilizar el nmero de vocales y consonantes que tiene una cadena de texto alfabtico.DESARROLLO

HYPERLINK "http://4.bp.blogspot.com/-DTxQgsZNom8/UD4OzQV2TkI/AAAAAAAAAQY/RKxOp_dlX0Y/s1600/j1.PNG"

AADIMOS EL SIGUIENTE METODO.Para ello a partir de un nuevo Constructor instanciado con el objetom_Objcreado en el main(), de la forma siguiente:

Ejemplo 02:Creacin de una clase esttica donde se simula la funcin Extraer(cadena, posicin, ncar). Donde Se necesita una CADENA y la POSICION INICIAL, a partir de donde se va a extraer, NCAR que es la cantidad de caracteres a extraer a partir de la posicin.

Ejemplo 3Creamos una clase para ingresar una frase en minscula y lo convierta a Mayscula solo el primer carcter de la cadena.

SOLUCIN:

USO DE METODOS DE FECHAS Y SUS FUNCIONES MIEMBROS

// funcin o mtodo para calcular la edad de una personaCalendar aoActualSist=null; // se inicializa el obj CalendaraoActualSist=aoActualSist.getInstance();//coge fecha actual

int d,m,a,hh=0,mm = 0,ss=0;

d = aoActualSist.get(aoActualSist.DAY_OF_MONTH); //diam = aoActualSist.get(aoActualSist.MONTH); // mesa = aoActualSist.get(aoActualSist.YEAR); //aohh = aoActualSist.get(aoActualSist.HOUR_OF_DAY); // horamm = aoActualSist.get(aoActualSist.MINUTE); //minutosss = aoActualSist.get(aoActualSist.SECOND); //segundos

Desarrollo:package paquete_balota1;import java.io.*;import java.util.*;public class aonaci{// metodostatic aonaci obj=new aonaci();para instanciar objeto // crear el obj de la clase aqu, o en mainpublic static voidmain(String[]args)throws IOException{BufferedReader tecla=new BufferedReader(new InputStreamReader(System.in)); System.out.println("Ingrese ao de nacimiento");int ao;ao=Integer.parseInt(tecla.readLine());// se pide el ao de nac aonaci obj=new aonaci(); // instanciamos el obj objetoobj.edad(ao);}// funcin o mtodo para calcular la edad de una personapublic void edad(int ao){ CalendaraoActualSist=null; // se inicializa el obj Calendar aoActualSist=aoActualSist.getInstance();//coge fecha act int d,m,a,hh=0,mm = 0,ss=0; d = aoActualSist.get(aoActualSist.DAY_OF_MONTH); m = aoActualSist.get(aoActualSist.MONTH)+1; a = aoActualSist.get(aoActualSist.YEAR); hh = aoActualSist.get(aoActualSist.HOUR_OF_DAY);mm = aoActualSist.get(aoActualSist.MINUTE); ss = aoActualSist.get(aoActualSist.SECOND); int aoActual=aoActualSist.get(aoActualSist.YEAR); //coge el ao // fecha del sistema System.out.println("dia es: "+d); System.out.println("Mes es: "+m); System.out.println("Ao es: "+a); // hora del sistema System.out.println("Hora es: "+hh); System.out.println("Minuto es: "+mm); System.out.println("Segundo es: "+ss); int age=aoActual-ao; // se calcula la edad System.out.println("la edad actual es: "+age);}