Sie sind auf Seite 1von 46

Enlazar bases de datos SQL con VB.

Net desde cero by Xtriker Accesar a una base de datos SQL mediante VB.net Programacion en capas A manera de referencia decidi acer este pe!"e#o t"torial en donde tratare de e$plicar de manera detallada y desde cero% como enlazar de manera seg"ra y ordenada "na base de datos SQL con "na aplicacion de &indo&s forms ec a en Vis"al Basic .Net "tilizando el frame&ork '.(% aplicando la metodologia de programacion en capas% asi !"e empezemos con "na bre)e introd"cion para !"e sepamos de !"e se trata esto. Por que usar una base de datos? B"eno p"es esto es sencillo% basicamente lo !"e b"scamos al organizar los datos ya sea en "n arc i)o de base de datos o en "n ser)idor es el ec o de tener n"estra informacion consistente% normalizada y !"e se enc"entre dentro de "n mismo conte$to% indispensable si tenemos la intension de desarrollar "na aplicacion distrib"ida% ya sea para gestion de in)entarios% personal% matric"las% etc...% a la c"al le podemos realizar di)ersas cons"ltas% generar reportes y otras tareas f"ndamentales de "n sistema !"e re!"iere grandes cantidades de informacion almacenada y protegida. Que es la programacion en 3 capas? La programacion en ' capas es "na metodologia de programacion en la c"al establecemos ni)eles de acceso y distrib"imos las areas de n"estra aplicacion para acceder a bases de datos% esto tiene cierta *erar!"ia de ac"erdo al ni)el de acceso% en donde la capa s"perior !"e es la interfaz grafica del programa en si% no accede directamente a los datos como normalmente se "tiliza el acceso a datos mediante el namespace S!l+lient% si no !"e ay "na capa intermedia entre el acceso a datos !"e es la !"e realiza la negociacion entre la presentacion del programa y los datos. Presentacion Negocio ,atos

Asi !"e la capa de datos es la !"e tiene la interacion con el mane*ador de bases de datos % la capa de negocio es la !"e establece como se )a a acceder a esos datos% y la capa de presentacion m"estra los datos en los di)ersos form"larios para s" interaccion con el "s"ario !"e administre los mismos. Cuales son las venta as de utili!ar la programacion en capas? S"pongamos !"e tenemos "na aplicacion !"e accede a "na base de datos% y la desarrollamos en -indo&s .orms% y !"eremos migrar o permitir el acceso mediante ser)icio &eb% o !"eremos crear "na interfaz grafica en -indo&s Presentation ."ndation para darle "n me*or aspecto grafico% si tenemos "na aplicacion desarrollada en capas% simplemente bastaria con agregar las referencias a n"estras capas de datos y de negocio% y simplemente dedicarnos a redise#ar n"estra interfaz grafica% o la presentacion ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker de n"estra &eb% esto ace s"mamente facil el acceso a datos desde distintas presentaciones.

2tra de las )enta*as es la seg"ridad% ya !"e la capa s"perior no tiene acceso a los datos% asi !"e% si crearamos "na implementacion de n"estro acceso a datos mediante -eb ser)ices o -indo&s +om"nication ."ndation% la capa de presentacion por si sola no representa ning"n tipo de riesgo para mane*ar informacion sensible ya !"e solo seria el cliente y todas las operaciones de datos se e*ec"tarian el el ser)idor% incl"si)e podenmos implementar compresion con -+. y acer las transferencias mas rapidas y menos pesadas. 2tra )enta*a es !"e es m"y facil crear "na aplicacion en capas% mantiene "n orden y c"al!"ier modificacion se ace de manera sencilla. Que necesito para llevar a cabo los pasos de este tutorial? SQL ser)er 344(13445 y Vis"al st"dio 3445. Que conocimientos requiero? +onocimientos basicos de programacion en Vis"al Basic .Net y SQL. 2k% "na )ez !"e ya tenemos lo necesario )amos a comenzar con el t"torial Crear la base de datos +omo primer paso necesitamos crear "na base de datos sobre la c"al traba*ar% asi !"e "na )ez !"e tenemos instalado el SQL Ser)er ya sea en s" )ersion E$press o la )ersion completa% abrimos n"estro SQL management st"dio y realizamos la cone$ion de ac"erdo a la a"tentificacion !"e allamos config"rado% asi !"e "na )ez dentro del ser)idor )amos a crear "na cons"lta n"e)a/

Esto nos creara "n n"e)o doc"mento de cons"lta% ay !"e )erificar tal y como esta en la imagen !"e la base de datos seleccionada sea 6master7 para !"e la base de datos se cree sobre la base principal o ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker maestra% posteriormente escribimos n"estro comando para crear la base de datos a la c"al llamaremos 8est449% asi !"e n"estro comando seria create database 8est449 :na )ez !"e escribimos esto solo bastaria seleccionar el comando y darle click en e*ec"tar o presionar .(

Esto crearia "na n"e)a base de datos dentro de el ser)idor al !"e estemos conectados con el nombre de 8est449% n"estra base a sido creada% pero antes de e*ec"tar c"al!"ier otro comando SQL ay !"e seleccionarla% colocamos el c"rsor sobre n"estro doc"mento de cons"ltas y seleccionamos la n"e)a base de datos.

A ora si es ora de crear n"estra tabla% para efectos de simplicidad solo crearemos "na tabla con ; campos/ <,% Nombre% Apellido y Edad% a la c"al denominaremos personas y la crearemos con este comando/ +=EA8E 8ABLE Personas ><, int <,EN8<8? >944%9@ P=<AA=? BE?% nombre n)arc ar >(4@% apellido n)arc ar>(4@% edad int@

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker ,efinimos la lla)e primaria como identidad a"toincremental% asi% con cada dato !"e sea insertado este <, ira a"mentando con respecto al "ltimo dato !"e se agrego% lo inicializamos en 944 y le damos "n incremento de 9 por cada n"e)o dato% con esto e)itamos conflictos por tratar de insertar "na lla)e primaria d"plicada.

N"e)amente seleccionamos el comando y lo e*ec"tamos para crear n"estra n"e)a tabla y asi tener listo todo para dedicarnos a n"estra aplicacion.

Cemos creado n"estra tabla% a ora ya tenemos todo listo para comenzar con el desarrollo% minimizemos el administrador de SQL y pasemos a Vis"al St"dio.

CAPA "# "A$%S


2k% en el men" arc i)o creamos "n n"e)o proyecto de tipo libreria de clases y le ponemos "n nombre% en mi caso le p"se 8est449>,atos@ para identificar !"e pertenece a la primera capa

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

Esto nos creara "na sol"cion !"e contiene "na clase por defecto +lass9.)b% )amos a eliminar esa clase desde el e$plorador de sol"ciones% por el momento no necesitaremos codigo en esta capa.

,esp"es de esto en el men" conte$t"al proyecto% agregamos "n n"e)o elemento del tipo Dcon*"nto de datosD

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

Nombramos n"estro con*"nto de datos% >a!"i lo e nombrado 8est,ataset.$sd@% y le damos agregar% esto nos creara n"estro n"e)o dataset% a ora% lo sig"iente es conectarlo a n"estra base de datos% asi !"e abrimos n"estro dataset y nos debe de aparecer "n dise#ador% al c"al le agregaremos n"estra tabla como "n ab*eto del tipo 8ableAdapter.

Si le damos "n clic derec o sobre n"estro dise#ador nos aparece el men" para agregar% en donde podemos agregar "n 8ableAdapter% "n ,ata8able % "na cons"lta o !"ery y "na relacion. Lo primero !"e necesitamos agregar es "n 8ableAdapter para obtener n"estra tabla creada en SQL% al ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker momento de agregar el table adapter se debera establecer la cone$ion al ser)idor SQL% estableciendo los parametros de cone$ion y seleccionando la base de datos a la !"e pretendemos accesar.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

Al realizar satisfactoriamente la cone$ion% el combobo$ de las bases de datos se llenara% seleccionamos n"estra base de datos y le damos aceptar% con esto ya tendriamos n"estros datos referenciados% ay "n boton en la es!"ina inferior iz!"ierda !"e nos sir)e para comprobar n"estra cone$ion a datos% "na )ez !"e salimos de esta pantalla% )emos !"e nos preg"nta si deseamos incl"ir datos confidenciales en la cadena de cone$ion% si no los incl"imos% abria !"e acerlo mediante codigo% asi !"e por comodidad seleccionamos la seg"nda opcion DSi incl"ir datos confidenciales en la cadena de cone$ionD% y c"ando le demos en sig"iente nos preg"ntara el nombre de n"estra cadena% en este caso le de*o el nombre por defecto.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

En el caso de !"e necesitemos la cadena de cone$ion posteriormente% podemos g"ardarla en el arc i)o de config"racion de la aplicacion% "na )ez !"e le ponemos nombre n"estra cadena de cone$ion pasamos a lo sig"iente !"e es donde establecemos el modo de acceso de n"estro 8ableaAdapter% en donde podemos "tilizar instr"cciones SQL% crear procedimientos almacenados% o "sar los procedimientos almacenados e$istentes% en este n"estro acceso sera mediante instr"cciones SQL% ya !"e necesitamos las instr"cciones <nsert% :pdate y ,elete.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

A ora nos preg"ntara los datos !"e debe de cargar la tabla% a!"i debemos generar la cons"lta SQL para obtener los datos% podemos acer "so del generador de cons"ltas o escribir directamente la cons"lta en el campo% "tilizemos el generador de cons"ltas para simplificar las cosas y no escribir los comandos directamente.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

En el momento !"e iniciemos el generador de cons"ltas nos preg"ntara !"e tabla >o tablas@ !"eremos agregar a n"estra cons"lta% seleccionamos n"estra tabla DPersonasD pre)iamente creada.

Simplemente seleccionamos la tabla y le damos agregar para incl"ir la tabla en la cons"lta% y p"es como es la "nica tabla !"e tenemos para agregar cerramos% )eremos !"e n"estra tabla aparece en la parte de arriba con s"s respecti)os campos% y a!"i )a "n tip% seleccionaremos los campos uno por uno% notaran !"e e$iste la opcion de agregar todos los campos esta opcion no nos con)iene ya !"e lo !"e ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker ara es "n S#L#C$ & y esto no nos ordenara n"estros datos% estos apareceran en el orden predeterminando% tal )ez los agregemos en este orden de c"al!"ier forma% pero imaginemos "na tabla con m"c os campos y necesitamos "n orden especifico para ellos% lo me*or sera establecer "n orden !"e nos con)enga% notemos !"e los campos apareceran en n"estra tabla de ac"erdo al orden en !"e los seleccionamos. :na )ez !"e ya tenemos n"estra cons"lta generada a"tomaticamente acemos click en E*ec"tar cons"lta para )er !"e nos de)"el)e correctamente los campos% a"n!"e n"estra tabla no tenga ning"n registro.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker A ora si ya tenemos generada n"estra cons"lta para obtener los datos de n"estra tabla% c"ando le demos click en aceptar se cerrara el generador de cons"ltas y )ol)eremos al asistente para config"racion de n"estro 8ableAdapter. Antes de dale click a sig"iente% nos )amos a las opciones a)anzadas en donde tenemos tres opciones% la primera es para generar n"estras instr"cciones <nsert% :pdate y ,elete% esta opcion debera estar acti)ada para tener estas instr"cciones en n"estro 8ableAdapter% desp"es tenemos la opcion para :tilizar la conc"rrencia optimista% esta opcion modifica n"estras instr"cciones "pdate y delete para )erificar !"e los datos no allan sido modificados% !"e implica esto% !"e para acer "n ,elete por e*emplo tendriamos !"e introd"cir todos los datos de "n registro% en l"gar de "tilizar "nicamente la lla)e primaria% !"e en este caso seria el <, de n"estra tabla personas% asi !"e como esta no pretende ser "na aplicacion distrib"ida y si lo mas simple posible% desacti)amos esta opcion. Por "ltimo tenemos la opcion Act"alizar tabla de datos% esto nos sir)e si !"eremos rec"perar el <, del registro !"e insertamos >recordemos !"e es a"to1incremental y se inserta a"tomaticamente@% o rec"perar el n"mero de registros afectados% en fin di)ersos )alores escalares !"e p"edan establecerse en la base de datos.

+"ando le demos click al sig"iente% nos aperecera en la pantalla alg"nos metodos !"e podemos agregar a n"estro 8ableAdapter% "n metodo para llenar "n ,ata8able% otro metodo !"e de)"el)e "n ,ata8able% y los metodos para act"alizar directamente la base de datos% la primera opcion no sera "tilizada en este t"torial% en s" l"gar aremos "so del metodo Eet,ata% al c"al podemos renombrar como 2btener,atos para tenerlo identificado.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

Entonces "na )ez renombrado n"estro metodo% solo basta darle click a sig"iente% en donde se mostrara el informe de todos los metodos agregados a n"estro 8ableAdapter.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

En caso de !"e no les genere los metodos <nsert% :pdate y ,elete eso !"iere decir !"e algo esta mal en n"estra cons"lta% tal )ez faltan campos o la estr"ct"ra de la cons"lta no es correcta. :na )ez !"e le demos click a .inalizar podemos )er !"e aparece n"estro 8ableAdapter con s"s respecti)os campos y n"estro metodo 2btener,atos

Listo% a ora tenemos n"estra 8abla en "n 8ableAdapter en donde podemos manip"lar n"estros datos con los metodos generados% pero% !"e pasa si necesitamos "n metodo e$tra% por e*emplo% saber c"antos registros ay% o mostrar los datos de personas por rangos de edades% etc Para esto necesitamos agregar "na n"e)a cons"lta% asi !"e agamos click de n"e)o en n"estro table Adapter% y a ora seleccionamos agregar1n"e)a cons"lta% asi !"e )amos a generar "n e*emplo para obtener las personas !"e tengan "na edad menor a la !"e nosotros indi!"emos% necesitamos !"e dic a ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker cons"lta sea parametrizada% y el parametro !"e necesita es *"stamente la edad% asi !"e en c"anto seleccionemos agregar n"e)a cons"lta )amos a )er de n"e)o el asistente para agregar cons"ltas >el mismo !"e )imos c"ando insertamos n"etros campos en la tabla@ y seleccionamos de n"e)o "sar intr"cciones SQL.

Podemos )er !"e tenemos )arios tipos de cons"ltas a generar% como n"estra cons"lta )a a obtener )arias filas% seleccionamos la cons"lta select !"e de)"el)e )arias filas% en caso de "tilizar alg"na cons"lta como Count o alg"na otra f"ncion escalar p"es seleccionamos "n select !"e de)"le)e "n solo )alor% )emos !"e tambien podemos generar insert% "pdate y delete c"stomizados% esto nos sir)e por e*emplo en el caso de agregar "n dato n"e)o obtengamos al mismo tiempo el id !"e se le f"e asignado >en caso de !"e el id se agrege a"tomaticamente% como en este caso !"e es a"toincremental@% con la ay"da de la f"ncion SC%P#'("#)$($*+,% o borrar datos de )arias tablas a la )ez. A ora podemos generar otra cons"lta% esta )ez )amos a acerlo directo sin "tilizar el generador a"tomatico ya !"e es "na cons"lta sencilla% !"edaria asi/ SELE+8 .=2A -CE=E <,% nombre% apellido% edad Personas >edad F -edad@

A ora notemos !"e la )ariable edad le colocamos "n 6G7% eso significa !"e es el parametro de n"estra cons"lta% eso !"iere decir !"e n"estro ,atatable tendra solo los registros con la edad menor al parametro !"e le pasemos% este parametro lo nombramos 6edad 6 solo como referencia% en realidad lo p"eden nombrar como "ds !"ieran.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

2k% n"e)amente nos )a a preg"ntar si !"eremos !"e nos de)"el)a "n datatable o !"e rellene "n datatable% asi !"e solo "tilicemos la f"ncion !"e obtiene el datatable% en este caso la renombrare como 2btienePersonasAenoresAEdad

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

a ora si% en c"anto le demos finalizar tendremos estr"ct"rada n"estra n"e)a cons"lta% podemos )er !"e tiene como parametro de entrada la edad% listo% tenemos n"estra capa de acceso a datos f"ncionando y lista para generarse% pero primero solo para aseg"rar% )amos a probar n"estra cons"lta% asi !"e la seleccionamos y con "n click derec o le damos 6Vista pre)ia de datos7.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

A ora nos preg"ntara la edad% entonces a i le daremos el parametro de entrada% esto nos de)ol)era "n registro N"ll% ya !"e n"estra tabla no tiene )alores% pero ya estaremos seg"ros de !"e n"estra cons"lta es correcta.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

2k% ya estamos listos para pasar a la sig"iente capa% )amos a generar n"estra sol"cion% nos )amos al men" .enerar y generamos n"estra libreria de acceso a datos.

2k% a ora podemos cerrar n"estro proyecto% si nos )amos a la carpeta de release de n"estro proyecto !"e debera de estar en Pro*ectsH8est449>,atos@HbinHrelease podemos )er !"e e$iste "na libreria con e$tension ,LL% con el nombre 8est449>,atos@.dll% este es el binario de todo lo !"e emos ec o en esta capa% asi !"e pasemos a la sig"iente etapa !"e es generar n"estra capa de negocios.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

CAPA "# )#.%C(%S


A partir de a!"i nos enfocaremos mas en el codigo asta !"e pasemos a n"estra capa de presentacion% asi !"e n"e)amente en Vis"al St"dio creamos "n n"e)o proyecto del tipo biblioteca de clases de la misma forma !"e creamos n"estra capa de datos% nombrare el proyecto 8est449>negocios@ como ya lo an de s"poner% "na )ez creado el proyecto esta )ez no eliminaremos la clase generada por Vis"al st"dio% renombremos esta clase para matenernos en el mismo conte$to% asi !"e le pondremos el nombre de n"estra tabla mediante el e$plorador de sol"ciones click derec o1+ambiar nombre y renombramos n"estra clase Personas.)b

A!"i ay !"e crear tantas clases como tablas tenemos en n"estra base de datos% pero ya !"e solo mane*amos "na tabla solo crearemos esta clase% a ora solo nos !"eda ligar n"estra capa de negocios con n"estra capa de datos para comenzar a codificar% asi !"e en el men" proyecto% seleccionamos la opcion agregar re/erencia

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

En la )entana de agregar referencia% nos posicionamos en la pesta#a de e$aminar y localizamos n"estra capa de datos 8est449>,atos@.dll para tener referenciadas ambas capas.

+"ando le demos aceptar tendremos completamente ligadas las f"nciones de n"estra capa de datos% asi !"e solo nos basta importarlas a n"estra clase% con la sentencia imports ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

(mports $est001'"atos'.$est"ataSet$ableAdapters (mports $est001'"atos'.$est"ataSet P"blic +lass Personas End +lass

8enemos ya listo todo para obtener n"estro ob*eto 8ableAdapter de n"estra capa de datos% pero Icomo lo obtenemosJ% recordemos !"e no pretendemos traba*ar directamente con los datos desde a!"i% todo lo aremos mediante la capa de negocios% asi !"e para obtener n"estro table adapter% necesitamos acerlo mediante "na propiedad% )amos al codigo y lo tratare de e$plicar lo mas sencillo !"e p"eda ya !"e a mi al principio comprender esta parte se me izo algo conf"so.
<mports 8est449K,atosK.8est,ataSet8ableAdapters <mports 8est449K,atosK.8est,ataSet P"blic +lass Personas Pri)ate KPersonas As Personas8ableAdapter L Not ing Protected =ead2nly Property Personas>@ As Personas8ableAdapter Eet <f KPersonas <s Not ing 8 en KPersonas L Ne& Personas8ableAdapter End <f =et"rn KPersonas End Eet End Property End +lass

2k% declaramos la )ariable KPersonas como "n 8ableAdapter% pero Ipor !"e no "tilizamos Ne&J podrian preg"ntarse% pero en realidad nos estamos refiriendo al ob*eto ya creado% y lo definimos como n"lo% esto para !"e% p"es por !"e si cada cons"lta generamos "na n"e)a instancia sin percatarnos si ya e$istia el ob*eto con anterioridad tendremos "n monton de tablas en memoria% y si traba*amos con tablas m"y grandes p"es n"estra aplicacion seria m"y pesada en memoria y ya !"e esto no es optimo primero )emos !"e n"estro table adapter no e$ista ><f KPersonas <s Not ing @ entonces creamos n"estro ob*eto n"e)o con el constr"ctor Ne&% y p"es lo de)ol)emos >=et"rn KPersonas@. 2k espero !"e no los alla enrredado. Asi !"e con n"estra propiedad personas obtendremos n"estro table adapter para comenzar a "tilizar n"estras cons"ltas% comencemos por la f"ncion insert% asi !"e creemos "na f"ncion p"blica para insertar dandole como parametros n"estros campos a insertar.
P"blic ."nction <nsertaPersona>ByVal Nombre As String% ByVal Apellido As String% K ByVal edad As <nteger@ As Boolean MA!"i )a el contenido de n"estra f"ncion

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker


End ."nction

A ora solo falta llamar a la propiedad Personas y "tilizar s" f"ncion insert% podremos )er !"e conforme la )amos escribiendo el intellisense nos )a indicando los datos !"e necesitamos% con e$epcion de el id ya !"e este se agrega a"tomaticamente

8al )ez se preg"nten por !"e declare la f"ncion como boolean% p"es res"lta !"e el insert por defecto de)"el)e el n"mero de registros afectados% asi !"e "na )ez !"e tengamos n"estra f"ncion% de)ol)emos el res"ltado del insert con)ertido en "n boleano% asi podemos saber si la operacion se realizo correctamente.
P"blic ."nction <nsertaPersona>ByVal Nombre As String% ByVal Apellido As String% K ByVal edad As <nteger@ As Boolean =et"rn +Bool>Personas.<nsert>Nombre% Apellido% edad@@ End ."nction

ok a ora agamos lo mismo con el codigo para eliminar% rec"erdan !"e desacti)amos la opcion de conc"rrencia optimista en la capa de datos% b"eno p"es gracias a esto la f"ncion de eliminar solo nos solicita el <,.

? este seria el codigo retornando n"estro )alor con)ertido a boleano

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker


P"blic ."nction EliminaPersona>ByVal <, As <nteger@ As Boolean =et"rn +Bool>Personas.,elete><,@@ End ."nction

A ora solo nos falta modificar% sig"iendo la misma estr"ct"ra

La f"ncion "pdate es "na f"ncion con N sobrecargas asi !"e "tilicemos la llamada donde solo nos solicita los campos y el id original

entonces !"edaria asi/


P"blic ."nction AodificaPersona>ByVal Nombre As String% ByVal apellido As String% K ByVal edad As <nteger% ByVal <, As <nteger@ As Boolean =et"rn +Bool>Personas.:pdate>Nombre% apellido% edad% <,@@ End ."nction

2k% entoces ya tenemos n"estras f"nciones para insertar% borrar y act"alizar% a ora colo!"emos la f"ncion para obtener n"estro datatable% asi !"e el tipo de dato a mane*ar sera el datatable de n"estro set de datos.
P"blic ."nction 2btienePersonas>@ As Personas,ata8able =et"rn Personas.2btener,atos>@ End ."nction

A ora ya tenemos la f"ncion !"e nos retorna n"estro data table% Isencillo noJ% a ora basta agregar la f"ncion para obtener el datatable res"ltante de la cons"lta del rango de edades% tambien es algo m"y facil.
P"blic ."nction 2btienePersonasAenoresAEdad>ByVal Edad As <nteger@ As Personas,ata8able =et"rn Personas.2btienePersonasAenoresAEdad>Edad@ End ."nction

2k% esta lista la capa de negocios% asi de sencillo O% b"eno p"es te de*o el codigo completo de la clase ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker para aseg"rarnos !"e no omitimos nada

<mports 8est449K,atosK.8est,ataSet8ableAdapters <mports 8est449K,atosK.8est,ataSet P"blic +lass Personas Pri)ate KPersonas As Personas8ableAdapter L Not ing Protected =ead2nly Property Personas>@ As Personas8ableAdapter Eet <f KPersonas <s Not ing 8 en KPersonas L Ne& Personas8ableAdapter End <f =et"rn KPersonas End Eet End Property P"blic ."nction <nsertaPersona>ByVal Nombre As String% ByVal Apellido As String% K ByVal edad As <nteger@ As Boolean =et"rn +Bool>Personas.<nsert>Nombre% Apellido% edad@@ End ."nction P"blic ."nction EliminaPersona>ByVal <, As <nteger@ As Boolean =et"rn +Bool>Personas.,elete><,@@ End ."nction P"blic ."nction AodificaPersona>ByVal Nombre As String% ByVal apellido As String% K ByVal edad As <nteger% ByVal <, As <nteger@ As Boolean =et"rn +Bool>Personas.:pdate>Nombre% apellido% edad% <,@@ End ."nction P"blic ."nction 2btienePersonas>@ As Personas,ata8able =et"rn Personas.2btener,atos>@ End ."nction P"blic ."nction 2btienePersonasAenoresAEdad>ByVal Edad As <nteger@ As Personas,ata8able =et"rn Personas.2btienePersonasAenoresAEdad>Edad@ End ."nction

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker


End +lass

2k% a ora generemos n"estra sol"cion.

CAPA "# P2#S#)$AC(%)


2k% ya tenemos n"estras capas referenciadas y listas para manip"lar datos% asi !"e a ora dedi!"emonos a dise#ar n"estra :<% asi !"e cerramos la sol"cion y creamos "n n"e)o proyecto de aplicacion de &indo&s forms

A ora antes !"e nada necesitamos agregar las referencias de n"estras capas% asi !"e n"e)amente le damos al men" proyecto1agregar referencia% y en la pesta#a e$aminar nos )amos a la carpeta =elease de n"estra capa de negocios% )eremos !"e a i tenemos n"estras dlls de datos y negocio ya !"e n"estra capa de negocio a ora es dependiente de n"estra capa de datos% asi !"e agregemos ambas librerias y le damos aceptar.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

2k% ya tenemos referenciadas n"estras capas% a ora )amos a agregar los controles a "tilizar% )oy a acer "na interfaz m"y sencilla% asi !"e ya de*o a s" criterio como ordenen los controles% ya !"e lo !"e lo importante en este t"torial es la f"ncionalidad% asi !"e agregare "n boton para cada accion% "n ,ataEridVie& para mostrar los datos% ; te$tBo$ para los campos% ; labels y ( botones% si !"ieren algo mas ordenado podrian crear "n .orm aparte para a#adir registros pero eso ya es a s" criterio y "na )ez !"e dominen esta metodologia. Asi !"e desp"es de insertar los controles mi :< !"edo asi/

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker B"eno p"es esto solo es cosa de arrastrar y soltar desde el tool bo$% no tiene gran ciencia% lo !"e si les recomiendo es !"e dentro de s" es!"ema > Ver P otras )entanas P Es!"ema del doc"mento Q +trl R Alt R 8@ colo!"en nombres descripti)os para cada control ya !"e si tienen m"c os controles% el nombre de Button3odi/icar sera mas descripti)o !"e Button3 por poner "n e*emplo% asi !"e en n"estro es!"ema le damos click derec o en el nombre del control y le damos +ambiar nombre% acemos lo mismo para cada control.

A!"i te de*o "na capt"ra de mi es!"ema para !"e identifi!"es los nombres de cada control

No es la interfaz mas bella pero recordemos !"e ya teniendo las capas de datos y negocio podemos crear )arias interfaces distintas% "tilizando las mismas referencias.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker Vamos a darles los te$tos adec"ados a n"estros controles% en la )entana de propiedades modificamos la propiedades 8e$t para cada "no.

2k% a ora !"e ya tenemos n"estra interfaz lista% descripti)a y ordenada% a!"i de*o la capt"ra de mi interfaz

A ora agregemos el origen de datos a n"estro ,ataErid% acemos click en la pe!"e#a flec a !"e aparece en la es!"ina s"perior derec a de n"estro ,ataErid.

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

,esplegamos el combobo$ donde dice Elegir origen de datos% seleccionamos la opcion de agregar n"e)o origen de datos al proyecto.

Nos )a a salir "n asistente preg"ntandonos de donde obtendra la aplicacion los datos% de "na base de datos% de "n ser)icio o de "n ob*eto% asi !"e seleccionamos %b eto

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

Al darle sig"iene )eremos !"e estan presentes n"estras capas% las c"ales podemos desplegar para )er los ob*etos !"e ay en ellas% asi !"e desplegemos n"estra capa de datos y seleccionemos n"estro ,ataSet

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

Le damos en sig"iente y ya esta todo listo solo ace falta darle click a finalizar y ya tenemos n"estro enlace de datos% cabe aclarar !"e si tenemos )arias tablas en "n data Set ay !"e especificar de !"e tabla se obtendran los datos. A ora ya tenemos n"etro datagrid con los datos cargados% esto nos )a a generar el ob*eto PersonasBindingSo"rce% !"e es n"estro enlace a los registros.

En este caso )oy a des abilitar la edicion del datagrid para !"e el "s"ario no edite los campos

para seleccionar )oy a establecer la propSedad SelectionAode en ."ll=o&Select% asi se seleccionara la ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker fila completa.

8ambien la propiedad A"ltiselect la establecere en .alse para e)itar seleccion m"ltiple

2k% codifi!"emos n"estra aplicacion% para empezar nos )amos al codigo de n"estra forma >.T@ y importamos n"estra capa de negocios
<mports 8est449KnegociosK P"blic +lass .orm9 End +lass

,eclaremos n"estro n"e)o ob*eto pri)ado personas% la clase para este ob*erto esta en n"estra capa de negocios% asi !"e declaramos.
<mports 8est449KnegociosK P"blic +lass .orm9 Pri)ate personas As Ne& Personas End +lass

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker 2k entonces )ol)emos a n"estro dise#ador >+trl R .T@ y le damos doble click a n"estro .orm% esto nos )a a generar el codigo para el e)ento form load
<mports 8est449KnegociosK P"blic +lass .orm9 Pri)ate personas As Ne& Personas Pri)ate S"b .orm9KLoad>ByVal sender As System.2b*ect% ByVal e As System.E)entArgs@ Candles AyBase.Load End S"b End +lass

En este e)ento )amos a cargar n"estro data table como el dataso"rce de n"estro ob*eto BindingSo"rce% IE J% esto significa !"e )amos a obtener n"estra tabla% y )amos a llenar con n"estros registros el origen de datos% asi !"e le colocamos la f"ncion !"e declaramos en n"estra capa de negocios para obtener n"etro datatable Personas.2btienePersonas
Pri)ate S"b .orm9KLoad>ByVal sender As System.2b*ect% ByVal e As System.E)entArgs@ Candles AyBase.Load PersonasBindingSo"rce.,ataSo"rce L personas.2btienePersonas>@ End S"b

? como b"enos programadores !"e somos )amos a mane*ar los posibles errores !"e se p"edan presentar% como el ec o de !"e la cone$ion no este disponible% esto lo acemos con la sentencia 8ry1 +atc .
Pri)ate S"b .orm9KLoad>ByVal sender As System.2b*ect% ByVal e As System.E)entArgs@ Candles AyBase.Load 8ry PersonasBindingSo"rce.,ataSo"rce L personas.2btienePersonas>@ +atc e$ As E$ception MEn caso de error mandamos el mensa*e de error en "n messagebo$ AessageBo$.S o&>e$.Aessage% DErrorD% AessageBo$B"ttons.2B% AessageBo$<con.Error@ End 8ry End S"b

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker 2k listo% emos llenado el binding so"rce% a ora )amonos con las acciones de los botones% en el dise#ador% le damos doble click al boton de Agregar para !"e nos genere el e)ento del click y a i agregamos el n"e)o dato no sin antes )alidar n"estros campos.

Pri)ate S"b B"ttonAgregaK+lick>ByVal sender As System.2b*ect% ByVal e As System.E)entArgs@ Candles B"ttonAgrega.+lick <f 8e$tBo$Nombre.8e$t L DD 2r 8e$tBo$Apellido.8e$t L DD 2r 8e$tBo$Edad.8e$t L DD 8 en MValidamos !"e nada este en blanco AessageBo$.S o&>DAlg"nos datos estan en blancoD% DAgregarD% AessageBo$B"ttons.2B% K AessageBo$<con.-arning@ Else 8ry personas.<nsertaPersona>8e$tBo$Nombre.8e$t% 8e$tBo$Apellido.8e$t% +int>8e$tBo$Edad.8e$t@@ M."ncion de insercion PersonasBindingSo"rce.,ataSo"rce L personas.2btienePersonas>@ MVol)emos a llenar n"estro binding so"rce +atc e$ As E$ception AessageBo$.S o&>e$.Aessage% DErrorD% AessageBo$B"ttons.2B% AessageBo$<con.Error@ MPara +"al!"ier error de cone$ion a datos End 8ry End <f End S"b

Primiero c ecamos !"e no esten en blanco n"estros campos% "na )ez )erificado eso "tilizamos la f"ncion <nsertaPersona !"e esta en n"estra capa de negocios% )ol)emos a llenar n"estra tabla desp"es de agregar% a ora dentro del e)ento click del B"ttonEliminar ponemos n"estro codigo para eliminar Verificamos para empezar !"e e$ista "na fila seleccionada en n"estro ,ataEridVie& y posteriormente obtenemos el <, para eliminarla seleccionando la col"mna con el inde$ 4 % y p"es como lo elimina completamente colocamos "n AessageBo$ de ad)ertencia para e)itar eliminar registros por error% a ora si% solo falta act"alizar
Pri)ate S"b B"ttonEliminaK+lick>ByVal sender As System.2b*ect% ByVal e As System.E)entArgs@ Candles B"ttonElimina.+lick M+ ecamos !"e e$ista "na seleccion en el datagrid <f ,ataEridVie&Personas.=o&+o"nt L 4 8 en E$it S"b Else 8ry MPedimos confirmacion del "s"ario <f AessageBo$.S o&>DEsta seg"ro de !"e desea eliminar el registroD% DEliminarD% K AessageBo$B"ttons.?esNo% AessageBo$<con.Q"estion@ L -indo&s..orms.,ialog=es"lt.?es 8 en personas.EliminaPersona>+<nt>,ataEridVie&Personas.+"rrent=o&.+ells>4@.Val"e@@ MEliminamos con n"estra f"ncion

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker


PersonasBindingSo"rce.,ataSo"rce L personas.2btienePersonas>@ MLlenamos de n"e)o el BindingSo"rce End <f +atc e$ As E$ception AessageBo$.S o&>e$.Aessage% DErrorD% AessageBo$B"ttons.2B% AessageBo$<con.Error@ End 8ry End <f End S"b

A!"i ay !"e )erificar ambas cosas !"e no aya espacios en blanco y !"e e$ista "n registro seleccionado% todos con s"s respecti)os 8ry catc para no tener problemas de e$epciones%
Pri)ate S"b B"ttonAct"alizaK+lick>ByVal sender As System.2b*ect% ByVal e As System.E)entArgs@ Candles B"ttonAct"aliza.+lick MValidamos espacios en blanco <f 8e$tBo$Nombre.8e$t L DD 2r 8e$tBo$Apellido.8e$t L DD 2r 8e$tBo$Edad.8e$t L DD 8 en AessageBo$.S o&>DAlg"nos datos estan en blancoD% DAodificarD% AessageBo$B"ttons.2B% K AessageBo$<con.-arning@ E$it S"b M8ambien )alidamos !"e e$ista "n dato seleccionado Else<f ,ataEridVie&Personas.=o&+o"nt FU 4 8 en 8ry personas.AodificaPersona>8e$tBo$Nombre.8e$t% 8e$tBo$Apellido.8e$t% +int>8e$tBo$Edad.8e$t@% K +int>,ataEridVie&Personas.+"rrent=o&.+ells>4@.Val"e@@ MAodificamos y act"alizamos los datos recordemos !"e ay !"e con)ertir el )alor a entero PersonasBindingSo"rce.,ataSo"rce L personas.2btienePersonas>@ +atc e$ As E$ception AessageBo$.S o&>e$.Aessage% DErrorD% AessageBo$B"ttons.2B% AessageBo$<con.Error@ End 8ry Else AessageBo$.S o&>DNo a seleccionado ning"n registroD% DAodificarD% AessageBo$B"ttons.2B% AessageBo$<con.-arning@ End <f End S"b

A ora solo falta el de la cons"lta de las edades% al ig"al !"e en las anteriores )alidamos.
Pri)ate S"b B"tton+ons"ltaK+lick>ByVal sender As System.2b*ect% ByVal e As System.E)entArgs@ Candles K B"tton+ons"lta.+lick <f 8e$tBo$+ons"lta.8e$t L DD 8 en AessageBo$.S o&>DNo a escrito ning"na edadD% D+ons"ltarD% AessageBo$B"ttons.2B% K AessageBo$<con.-arning@ E$it S"b Else 8ry

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker


PersonasBindingSo"rce.,ataSo"rce L personas.2btienePersonasAenoresAEdad>+<nt>8e$tBo$+ons"lta.8e$t@@ MLlenamos el binding so"rce con el )alor de la ca*a de te$to de a cons"lta con)ertido a entero +atc e$ As E$ception AessageBo$.S o&>e$.Aessage% DErrorD% AessageBo$B"ttons.2B% AessageBo$<con.Error@ End 8ry End <f End S"b

Solo falta agregar el Ae.+lose>@ en el e)ento click del boton Salir % a ora p"eden implementar distintas cosas mas a s" aplicacion% corri*an alg"nos errores ya !"e e$isten alg"nas otras cosas !"e podrian pro)ocar "n error como el ec o de introd"cir "na letra en el campo de edades% pero eso ya se los de*o a "ds% es facil con la f"ncion 8ryParse% asi !"e )amos a probar n"estra aplicacion% este es el codigo completo
<mports 8est449KnegociosK P"blic +lass .orm9 Pri)ate personas As Ne& Personas Pri)ate S"b .orm9KLoad>ByVal sender As System.2b*ect% ByVal e As System.E)entArgs@ Candles AyBase.Load 8ry PersonasBindingSo"rce.,ataSo"rce L personas.2btienePersonas>@ +atc e$ As E$ception AessageBo$.S o&>e$.Aessage% DErrorD% AessageBo$B"ttons.2B% AessageBo$<con.Error@ End 8ry End S"b Pri)ate S"b B"ttonAgregaK+lick>ByVal sender As System.2b*ect% ByVal e As System.E)entArgs@ Candles B"ttonAgrega.+lick <f 8e$tBo$Nombre.8e$t L DD 2r 8e$tBo$Apellido.8e$t L DD 2r 8e$tBo$Edad.8e$t L DD 8 en AessageBo$.S o&>DAlg"nos datos estan en blancoD% DAgregarD% AessageBo$B"ttons.2B% AessageBo$<con.-arning@ Else 8ry personas.<nsertaPersona>8e$tBo$Nombre.8e$t% 8e$tBo$Apellido.8e$t% +<nt>8e$tBo$Edad.8e$t@@ PersonasBindingSo"rce.,ataSo"rce L personas.2btienePersonas>@ +atc e$ As E$ception AessageBo$.S o&>e$.Aessage% DErrorD% AessageBo$B"ttons.2B% AessageBo$<con.Error@ End 8ry End <f End S"b Pri)ate S"b B"ttonEliminaK+lick>ByVal sender As System.2b*ect% ByVal e As System.E)entArgs@ Candles B"ttonElimina.+lick <f ,ataEridVie&Personas.=o&+o"nt L 4 8 en E$it S"b Else 8ry <f AessageBo$.S o&>DEsta seg"ro de !"e desea eliminar el registroD% DEliminarD% K AessageBo$B"ttons.?esNo% AessageBo$<con.Q"estion@ L -indo&s..orms.,ialog=es"lt.?es 8 en personas.EliminaPersona>+<nt>,ataEridVie&Personas.+"rrent=o&.+ells>4@.Val"e@@ PersonasBindingSo"rce.,ataSo"rce L personas.2btienePersonas>@

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker


End <f +atc e$ As E$ception AessageBo$.S o&>e$.Aessage% DErrorD% AessageBo$B"ttons.2B% AessageBo$<con.Error@ End 8ry End <f End S"b Pri)ate S"b B"ttonAct"alizaK+lick>ByVal sender As System.2b*ect% ByVal e As System.E)entArgs@ Candles B"ttonAct"aliza.+lick <f 8e$tBo$Nombre.8e$t L DD 2r 8e$tBo$Apellido.8e$t L DD 2r 8e$tBo$Edad.8e$t L DD 8 en AessageBo$.S o&>DAlg"nos datos estan en blancoD% DAodificarD% AessageBo$B"ttons.2B% AessageBo$<con.-arning@ Else<f ,ataEridVie&Personas.=o&+o"nt FU 4 8 en 8ry personas.AodificaPersona>8e$tBo$Nombre.8e$t% 8e$tBo$Apellido.8e$t% +<nt>8e$tBo$Edad.8e$t@% +<nt>,ataEridVie&Personas.+"rrent=o&.+ells>4@.Val"e@@ PersonasBindingSo"rce.,ataSo"rce L personas.2btienePersonas>@ +atc e$ As E$ception AessageBo$.S o&>e$.Aessage% DErrorD% AessageBo$B"ttons.2B% AessageBo$<con.Error@ End 8ry Else AessageBo$.S o&>DNo a seleccionado ning"n registroD% DAodificarD% AessageBo$B"ttons.2B% AessageBo$<con.-arning@ End <f End S"b Pri)ate S"b B"tton+ons"ltaK+lick>ByVal sender As System.2b*ect% ByVal e As System.E)entArgs@ Candles B"tton+ons"lta.+lick <f 8e$tBo$+ons"lta.8e$t L DD 8 en AessageBo$.S o&>DNo a escrito ning"na edadD% D+ons"ltarD% AessageBo$B"ttons.2B% AessageBo$<con.-arning@ E$it S"b Else 8ry PersonasBindingSo"rce.,ataSo"rce L personas.2btienePersonasAenoresAEdad>+<nt>8e$tBo$+ons"lta.8e$t@@ +atc e$ As E$ception AessageBo$.S o&>e$.Aessage% DErrorD% AessageBo$B"ttons.2B% AessageBo$<con.Error@ End 8ry End <f End S"b Pri)ate S"b B"ttonSalirK+lick>ByVal sender As System.2b*ect% ByVal e As System.E)entArgs@ Candles B"ttonSalir.+lick Ae.+lose>@ End S"b End +lass

Solo generemos n"estro proyecto con generar para tenerlo compilado% y posteriormente ,ep"rar1<niciar dep"racion o simplemente .( Les de*o alg"nas capt"ras% a"n faltan )alidaciones por acer de*r en blanco los campos desp"es de insertar% men"s conte$t"ales% etc...% pero lo basico ya esta listo% solo ay !"e embellecerlo "n poco con otras f"ncionalidades o )alidaciones

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

ttp/00tips1de1programacion1)b.blogspot.com0

Enlazar bases de datos SQL con VB.Net desde cero by Xtriker

Espero les sea de "tilidad compa#eros desarrolladores% si ago alg"n otro t"torial lo pondre en mi blog% agradeceria c"al!"ier s"gerencia% comentario% peticion o error. ttp/00tips1de1programacion1)b.blogspot.com0

ttp/00tips1de1programacion1)b.blogspot.com0

Das könnte Ihnen auch gefallen