Documente Academic
Documente Profesional
Documente Cultură
Transact-SQL es la implementacin SQL Server del estndar ANSI SQL -92 ISO. El ANSI SQL92 define elementos del lenguaje SQL que pueden ejecutarse desde cualquier aplicacin frontal. Transact-SQL tambin contiene elementos del lenguaje que son nicos en l (extensiones Transact-SQL). Es recomendable que al escribir aplicaciones para las bases de datos se utilicensentencias ANSI SQL-92 para aumentar la compatibilidad de las ba ses de datos y de las aplicaciones.
Declaraciones del Data Control Language (DCL) que se utilizan para determinar quin ve o modifica los datos. Declaraciones del Data Defin ition Language (DDL) que se usan para crear los objetos en la base de datos. Declaraciones del Data Man ipu lation Language (DML) que se usan para consultar y modificar los datos.
Elementos adicionales del lenguage como: variables, operadores, funciones, sentencias de control de flujo, y comentarios.
S entencia GRANT
Descripcin Crea una entrada en la seguridad del sistema que le permite a un usuario trabajar con los datos o ejecutar ciertas sentencias Transact-SQL. Crea una entrada en la seguridad del sistema negando un permiso de una cuenta de seguridad y evita que el usuario, grupo, o rol herede el permiso a travs de su grupo y rol. Quita un permiso previamente concedido o negado.
DE NY
REVOKE
Por defecto, slo miembros con roles sysad min , dbcreator, db_own er o db_securityadmin pueden ejecutar las declaraciones DCL.
Ejemplo Este ejemplo concede permiso para leer la tabla medico al rol public.
Por defecto, solo miembros de los roles sysadmin, dbcreator, db_owner, o db_ddladmi n pueden eje cutar las de claraciones DDL. En general, se recomienda que ninguna otra cuenta se use para crear los objetos de la base de datos. Si diferentes usuarios crean sus propios objetos en una base de datos, cada dueo de objeto debe conceder los permisos apropiados a cada usuario de e sos objetos. Esto causa una sobrecarga ad ministrativa y debe evitarse. E e mp l o USE HospitalNet CREATE TABLE Paciente ( idpaciente int, nombre c ar (40), app c ar(30), dire ccin varc ar (50) )
Por defe cto solamente miembros de los roles sysadmin, db_owner o db_datawriter pueden ejecutar sentencias DML. E e mp l o sele ct idmedico,app,apm from hospitalnet..medicos
EC M ET - C
V ar i ab le s l oca le s y g l oba le s
Las variables son los elementos del lenguaje a los que se puede asignar valores. Pueden ser locales o globales.
V ar i ab le g l o ba l ( p r o p or c i o nada p or el s i st em a)
Las variables globales son predefinidas y mantenidas por SQL Server. El usuario no puede asignar o cambiar directamente los valores de las variables globales. Muchas de las variables globales reportan al sistema la actividad que ha tenido lugar desde la ltima vez que SQL Server fue iniciado, otras reportan informacin sobre una conexin. Una variable global es identificada con dos smbolos @ precediendo su nombre. Las variables globales son tiles para verificar la seguridad o condiciones del entorno actual de SQL Server. Por ejemplo, si quiere verificar el nmero de versin de SQL Server, puede realizar la consulta a la variable global @@versin. La consulta devuelve el nmero de la versin del SQL Server que est ejecutando. Ejemplo El ejemplo siguiente usa la variable global @@trancount para determinar si existe alguna transaccin abierta antes de ejecutar una consulta o procedimiento almacenado . La variable @@trancount retorna un numero que representa el nmero de transacciones que se tiene abiertas actualmente. declare @appat char(30)
set @appat='valle' select idmedico,nombre,app,apm from hospitalnet..medicos where app= @appat If ( @@trancount > 0 ) Begin Raiserror ( 'la tarea no puede ejecutarse dentro de una transaccin' ,10,1) Return End
Ope rador e s
Los operadores son smbolos que indican la ejecucin de operaciones matemticas, encadenamientos de cadenas, y comparaciones entre las columnas, constantes y variables. Los operadores pueden combinarse y utilizarse en las expresiones de bsqueda. Cuando los combina, el orden en que los operadores se procesan se basa en una jerarqua predefinida.
T i p os d e o pe rado r e s
SQL Server soporta cuatro tipos comparacin, de cadenas, y lgicos. O p e r a d o r e s a r i t m t i c os Los operadores aritmticos realizan clculos con las columnas numricas o las constantes.Transact-SQL soporta los operadores multiplicativos: producto (*), divisin (/), y mdulo (%) - el resto despus de la divisin entera - y los operadores aditivos: suma (+), y substraccin (-). de operadores: aritmticos, de
O p e r a d o r e s d e c o m p a r ac i n Estos operadores comparan dos expresiones. Las comparaciones pueden realizarse entre las variables, columnas, y expresiones de tipo similar. Los operadores de comparacin incluyen a: menor que (<), mayor que (>), igual a (=), y todas las combinaciones posibles. O p e r a d o r d e c o n c at e n a c i n d e c a d e n as El operador de concatenacin de cadenas (+) encadena los valores de tipo string. Por defecto, una cadena vaca (") se interpreta como un espacio en blanco. Por ejemplo, 'abc' + '' + 'def' es almacenada como 'abc def'. La cadena vaca nunca se evala como un valor nulo.
La s e nt e nc i a S E L E CT
Puede crear consultas para recuperar informacin de su base de datos utilizando el Analizador de Consu ltas (Qu ery Analyzer) de SQL Server desde o fuera del Ad min istrador Corporativo (E nterprise Manager) de SQL Server, as como utilitarios de lnea de comandos como osql. Hay otros utilitarios que tambin pueden hacerlo, entre los que se incluyen MSQu ery y E nglish Qu ery. Tambin dispone de herramientas y utilitarios de otros
fabricantes. Hay tres componentes bsicos en la instruccin SELECT: SELECT, FROM y WHERE. A continuacin la sintxis bsica. SELECT * | li s _clum s FROM la [ WHERE c icin_filas ]
lista_columnas es la lista de columnas a mostrar en el resultado de la consulta. Si se espe cifica * se mostrarn todas las columnas de la tabla. condicin_filas es una expresin lgica que indica que las fila s a mostrar son aquellas para las que el valor de la expresin es verdadero.
A continuacin se muestra la sintxis completa SELECT [ ALL | DISTINCT ] [ TOP n [ PERCENT ] [ WITH TIES ] ] lista_columnas [ INTO nueva_tabla ] FROM tabla_origen [ WHERE condicin_filas ] [ GROUP BY [ALL] expresin_agrupar_por , ... ] [ WITH CUBE | ROLLUP ] ] [ HAVING condicin_grupos ] [ ORDER BY nombre_columna [ASC | DESC ] , ] [ COMPUTE AVG | COUNT | MAX | MIN | SU M (expresin) ]
O pe rado re s de co n di ci n _ f i l as
En la expre sin lgica que e specifica la c ndicin_filas se pueden utilizar, adems de los operadores relacionales o de comparacin, los siguientes operadores SQL: LIKE BETWEEN IN Para comparacin de cadenas de caracteres. Admite los comodines % y _. Para seleccin en base a un rango de valores. Los valores pueden ser numricos, de cadena, fe chas y horas. Para seleccin en base a un conjunto de valore s. Los valores pueden ser numricos, de cadena, fe chas y horas.
--consulta para ver el diagarama de la BD alter authorization on database:: HOSPITALNET to sa -- 1. Mostrar todos los datos de los empleados sele ct * from empleados Mostrar el apellido parterno "app", salario anual de los e mpleados sele ct app, salario *14 as "SALARIOANUAL" from e mpleados
--2.
--3
M ostrar los mismo pero aquellos cuyo salario anual sobre pasa los 20000 de los empleados sele ct app, salario *14 as "SALARIOANUAL" from e mpleados where salario*14 > 20000
--4.
M ostrar los mismo pero aquellos cuyo salario anual sobre pasa los 20000 mas comisiones sele ct app, salario *14 as "SALARIOANUAL" from e mpleados where salario*14 + comision*14 > 20000 Mostrar todos los datos de empleados ordenados por apellidos paternos sele ct * from empleados order by app Mostrar todas las salas para el hospital 2 sele ct * from sala where idhospital= 2 Mostrar todos los paciente s nacidos ante s de 1987 sele ct * from paciente s where fechan<'01-01-1987' Mostar los e mpleados cuyo sueldo e stee entre 1200 - 1800 de los empleados sele ct * from empleados where salario between 1200 and 1800 -sele ct * from empleados where dire ccion in('Chimbote') -sele ct * from empleados where dire ccion not in('Chimbote') -sele ct * from empleados where dire ccion='Chimbote' -sele ct * from empleados where dire ccion <>'Chimbote' -sele ct * from empleados where app like ' !a' -sele ct * from empleados where app like 'a%'
--5.
--6.
--7.
--8.
OPER"DOR LIKE
% Cualquier nmero de caracteres _ Para un carcter individual [ ] Para un conjunto de caractere s que e st dentro del corchete [ ^ ] Que el carcter individual que no e st dentro del corchete
EJEM PLO: LIKE %een Muestra todos los caracteres que acaben con een
EJEMPLO: L#KE %een%$ Muestra todos los caracteres que contengan een en ese orden EJEMPLO: L#KE _ en $ Muestra todos los caracteres que contenga tres letras y acaben en en EJEMPLO: L#KE [CK% ]$ Muestra todos los caracteres que empiecen por C o K EJEMPLO: L#KE [S-V]ing$ Nombre de 4 letras cuya primera letra estuviera entre S o V y acabe en ing EJEMPLO: L#KE M[^c]%$ Todos los que empiecen por M y segunda letra no sea una c. No hay lmite de caracteres.
Agrupar y Resumir Datos select * from empleados select top 3 nombres,app,apm,direccion from empleados -- Devuelve los 3 primeros empleados select top 50 percent nombres,app,apm,direccion from empleados --Devuelve el 50% de los empleados select top 2 with ties nombres,app,apm,direccion from empleados where direccion= 'chimbote' order by app --Devuelve los 2 primeros registros con direcion chimbote.
F unc i on e s
Transact-SQL proporciona muchas funciones que devuelven informacin de las bases de datos o del sistema. Una funcin recibe parmetros como valores de entrada y retorna un valor que puede utilizarse en las expresiones. La siguiente es la sintxis para obtener el resultado de una funcin con la sentencia SELECT:
Funciones Tipo Fecha select * from getdate() Sample Format # Query (current date: 12/30/2006) /*1*/ select convert(varchar, getdate(), 1) /*2*/ select convert(varchar, getdate(), 2) select convert(varchar, getdate(), 3) /*3*/ /*4*/ select convert(varchar, getdate(), 4) select convert(varchar, getdate(), 5) /*5*/ /*6*/ select convert(varchar, getdate(), 6) select convert(varchar, getdate(), 7) /*7*/ /*8*/ select convert(varchar, getdate(), 10) /*9*/ select convert(varchar, getdate(), 11) /*10*/ select convert(varchar, getdate(), 101) /*11*/ select convert(varchar, getdate(), 102) /*12*/ /*13*/ select convert(varchar, getdate(), 103) select convert(varchar, getdate(), 104)
--09/13/08 --8.09.13 --13/09/08 --13.09.08 --13-09-08 --13 Sep 08 --Sep 13, 08 --09-13-08 --08/09/13 --09/13/2008 --2008.09.13 --13/09/2008 --13.09.2008
/*14*/ /*15*/
/*16*/ select convert(varchar, getdate(), 107) /*17*/ select convert(varchar, getdate(), 110) /*18*/ select convert(varchar, getdate(), 111) 'JAPONES'
FORMATO TIEMPO /*19*/ 8 or 108 sele ct convert(varchar, getdate(), 8) /*20*/ 9 or 109 sele ct convert(varchar, getdate(), 9) /*21*/ sele ct convert(varchar, getdate(), 113) FORMATO 'EUROPA' /*22*/ 14 or 114 sele ct convert(varchar, getdate() , 14) --22:55:05 --Sep 13 2008 10:55:24:577PM --13 Sep 2008 23:05:10:403 --00:38:54:840
FORMATO FECHA Y TIEM PO /*23*/ sele ct convert(varchar, /*24*/ sele ct convert(varchar, /*25*/ sele ct convert(varchar, /*26*/ sele ct convert(varchar,
OPERACIONES CON FECHA sele ct convert(varchar, getdate(), 103) + ' - ' + convert(varchar, getdate(), 8) --13/09/2008 - 23:08:08 sele ct convert(varchar, getdate(), 103) + convert(varchar, getdate(), 8) --13/09/200823:08:40
Otros Ejemplos
SELECT user_name(), app_name(),host_name(),getdate() dbo Microsoft SQL Server M anagement Studio - Query 09-13 23:12:33.467 MODULOR 2008-
SELECT user_name(), app_name(),host_name(), convert(varchar, getdate(), 103) + '- '+ convert(varchar, getdate(), 8) dbo Microsoft SQL Server M anagement Studio - Query 13/09/2008- 23:14:04 MODULOR
FUNCIONES AGREGADAS sele ct * from paciente s -- valore s con nulos sele ct count(*) from paciente s --esta lleno el casillero nombre por lo tanto mostara todos los registros
select count(nombres) from pacientes --vemos que hay un paciente cuyo apm no esta lleno por lo tanto mostrara 3 registros select count(apm) from pacientes
Funcin de resu men AVG COUNT(*) MAX MIN S UM Funcin de resu men STDEV STDEVP VAR VARP
Descripcin Promedio de un valor en una expresin numrica. Nmero de filas seleccionadas. El valor mximo de una expresin. El valor mnimo de una expresin. Valores totales de una expresion numrica. Descripcin Desviacin estadstica de todos los valores. Desviacin estadstica para toda la poblacin. Variacin estadstica de todos los valores. Variacin estadstica de todos los valores para la poblacin.
Puede usar las funciones de resumen con la declaracin SELECT o en combinacin con la clusula GROUP BY. Con excepcin de la funcin COUNT(*), todas las funciones de resumen retornan NULL si ninguna fila satisface la clusula WHERE. La funcin COUNT (*) retorna un valor de cero si ninguna fila satisface la clusula WHERE.
= <
Igual Menor
-- promedio mensual cuanto gasta en planilla select avg(salario) as GASTOMENSUAL from empleados --mayor sueldo de un empleado select max(salario) as GASTOMENSUAL from empleados --menos sueldo de un empleado select min(salario) as GASTOMENSUAL from empleados
--La suma total de gasto en planilla mensual select sum(salario) as GASTOMENSUAL from empleados
--La suma total de gasto en planilla al ao supuniendo que ganan 14 sueldos al ao select sum(salario) * 14 as GASTOMENSUAL from empleados -- cuantos empleados en total se pagan y cuanto es la planilla total select count(*) as [Numero de Empleados], sum(salario) as [Salario Medio] from empleados
La c l usu l a GR OU
BY
La clusula GROUP BY se utiliza para agrupar las filas en base a determinado criterio, y luego ejecutar una operacin que resume un atributo para cada uno de los grupos asi formados. Por ejemplo, puede utilizar GROU P BY para agrupar todas las facturas por cliente, y luego calcular el monto total facturado de cada cliente. S E LE CT lista_columnas , FUNCION_RESUMEN ( columna ) FROM tabla GROUP BY lista_columnas [ HAVING condicin_grupos ]
lista_columnas en GROUP BY debe ser la misma que en SELECT. La clusula GROUP BY permite agrupar las filas en base a los valores de una o mas columnas, y luego efectuar alguna operacin de resumen sobre cada grupo asi generado.
HAVING permite especificar cules de los grupos generados se deben mostrar en el resultado de la consulta.
y
SQL Server produce una columna de valores para cada criterio de agrupacin definido en GROUP BY. ECPMSD.NET - CPDBA CPNA Ing. Miguel Arturo Valle Pelez
10
SQL Server retorna solo una fila para cada grupo que especifica; no devuelve la informacin de detalle. Todas las columnas que se especifican en la clusula GROUP BY deben ser incluidas en la lista SELECT. Si incluye una clusula WHERE, SQL Server agrupa solo las filas que satisfacen la condicin de la clusula WHERE. Al usar la clusula GROUP BY en columnas que contienen valores NULL, stos se procesan como un grupo. Use la palabra clave ALL con la clusula GROUP BY para desplegar todas las filas con valores nulos en las columnas, sin tener en cuenta si las fila s satisfacen la clusula WHERE.
sele ct count(*) as [Numero de Empleados], sum(salario) as [Salario Medio] from empleados where iddep=40 group by iddep
U so de la cl u s u la G R OUP BY co n l a cl u s u la HAV I N G
As% como la clusula WHERE se utiliza como un filtro de filas, la clusula HAVING se utiliza como un filtro de grupos. Cuando use la clusula HAVING, considere lo siguiente: y Use la clusula HAVING solo con la clusula GROUP BY para restringir la agrupacin. Puede tener hasta 128 condiciones en una clusula HAVING. Cuando define condiciones mltiples, debe combinarlas con los operadores lgicos (AND, OR, o NOT). La clusula HAVING debe hacer referencia a cualquiera de las columnas que aparecen en la lista SELECT. No utilic e la palabra clave ALL con la clusula HAVING.
--- de cada departamento ver el sueldo mas alto sele ct iddep,max(salario) as [Salario Mximo] from e mpleados group by iddep
--de cada departamente ver el sueldo mas alto cuyo codigodedepartamente sea menor a 30 sele ct iddep,max(salario) as [Salario Mximo] from e mpleados group by iddep having iddep< 30
11
Consultas complejas
Las consu l tas corr el ac i onadas
U n join o consulta correlacionada es la consulta que selecciona columnas de mas de una tabla, y las muestra en un nico conjunto de resultados. S E LE CT lista_columnas FROM tabla1 tipo_join JOIN tabla2 ON condicin_del_join
y y y y
lista_columnas es la lista de columnas a mostrar en el resultado de la consulta. Se recomienda que cada columna sea calificada con el alias de la tabla a la cual pertenece. tipo_join indica si el join es interior (INNER), exterior (OUTER) o irrestricto (CROSS). condicin_del_join es una expresin que indica en base a qu columnas de cada una de las tablas se establece la relacin entre ellas.
I nner join
Un inner j in es la consulta correlacionada que combina todas las filas que estn relacionadas en ambas tablas.
DEPARTAMENTO ( id_dep nombre 1 Ventas 2 Finanzas 3 Personal 4 Logstica 5 Marketing 5 filas ) jefe Lpez Mora Castro Alva Ludea EMPLEADO ( 8 filas ) id_emp paterno id_dep 101 Quispe 2 102 Soria 1 103 Osorio 2 104 Aliaga 3 105 Vera 2 106 Barrios 6 107 Mrquez 1 108 Cceres 2
&
SELECT emp.id _emp , emp.paterno , dep.jefe FROM empleado emp INNER JOIN departamento dep ON emp.id _dep = dep.id _dep RESULTADO ( 7 filas ) id_emp paterno 101 Quispe 102 Soria 103 Osorio 104 Aliaga 105 Vera 107 Mrquez 108 Cceres
12
O uter join
Un outer join es la consulta correlacionada que entrega todas las filas que estn relacionadas, y adems: y y y las filas no relacionadas de la tabla izquierda (LEFT OUTER JOIN), o las filas no relacionadas de la tabla derecha (RIGHT OUTER JOIN), o las filas no relacionadas de ambas tablas (FULL OUTER JOIN) Se considera como la tabla izquierda, a aquella que se menciona en la clusula FROM.
SELECT emp.id _emp , emp.paterno , dep.jefe FROM empleado emp LEFT OUTER JOIN departamento dep ON emp.id _dep = dep.id _dep
RESULTADO ( 8 filas ) id_emp paterno 101 Quispe 102 Soria 103 Osorio 104 Aliaga 105 Vera 107 Mrquez 108 Cceres 106 Barrios
La consulta muestra a los 7 empleados que estn registrados en departamentos existentes, y adems al empleado 106 Barrios que figura registrado en un departamento inexistente. Como empleado es la tabla izquierda, la consulta debe mostrar todas las filas de la tabla empleado; es decir, las filas relacionadas y las filas no relacionadas.
13
SELECT emp.id _emp , emp.paterno , dep.jefe FROM empleado emp RIGHT OUTER JOIN departamento dep ON emp.id _dep = dep.id _dep
RESULTADO ( 9 filas ) id_emp paterno 101 Quispe 102 Soria 103 Osorio 104 Aliaga 105 Vera 107 Mrquez 108 Cceres NULL NULL NULL NULL
jefe Mora Lpez Mora Castro Mora Lpez Mora Alva Ludea
La consulta muestra a los 7 empleados que estn registrados en departamentos existentes, y adems a los jefes de departamento que no tienen empleados a su cargo. Como departamento es la tabla izquierda, la consulta debe mostrar todas las filas de la tabla empleado que tienen relacin con la tabla departamento, y adems las filas de la tabla departamento que no tienen relacin con la tabla empleado.
14
SELECT emp.id _emp , emp.paterno , dep.jefe FROM empleado emp FULL OUTER JOIN departamento dep ON emp.id _dep = dep.id _dep RESULTADO ( 10 filas ) id_emp paterno 101 Quispe 102 Soria 103 Osorio 104 Aliaga 105 Vera 107 Mrquez 108 Cceres 106 Barrios NULL NULL NULL NULL
jefe Mora Lpez Mora Castro Mora Lpez Mora NULL Alva Ludea
La consulta muestra a los 7 empleados que estn registrados en departamentos existentes, y adems a los empleados registrados en departamentos inexistentes, y a los jefes de departamento que no tienen empleados a su cargo.
15
C ross join
Un cross join es la consulta correlacionada que combina cada una de las filas de una de las tablas con todas las filas de la otra tabla. No es necesario que exista una columna comn para ejecutar cross join.
EMPLEADO ( 8 filas ) id_emp paterno id_dep 101 Quispe 2 102 Soria 1 103 Osorio 2 104 Aliaga 3 105 Vera 2 106 Barrios 6 107 Mrquez 1 108 Cceres 2
SELECT emp.id _emp , emp.paterno , dep.jefe FROM empleado emp CROSS JOIN departamento dep
RESULTADO ( 40 filas ) id_emp paterno 101 Quispe 101 Quispe 101 Quispe 101 Quispe 101 Quispe 102 Soria 102 Soria 102 Soria 102 Soria 102 Soria 103 Osorio ... ... ... ... ... ... 107 Mrquez 108 Cceres 108 Cceres 108 Cceres 108 Cceres 108 Cceres
jefe Lpez Mora Castro Alva Ludea Lpez Mora Castro Alva Ludea Lpez ... ... ... Ludea Lpez Mora Castro Alva Ludea
16
id_cliente 2 2 4 1 1 1
SELECT cli.nombre , pro.descripcion , ven.cantidad FROM clientes cli INNER JOIN ventas ven ON cli.id _cliente = ven.id _cliente INNER JOIN productos pro ON ven.id _producto = pro.id _producto
RESULTADO
nombre Comercial Arce Comercial Arce Las Alondras S.A. Juan Mora Juan Mora Juan Mora descripcion cuadernos papel bond lpices color lpices color lapiceros borradores cantidad 36 250 100 200 100 50
17
18
Configuramos las propiedades de los listview: En la propiedad Columns le damos clic donde aparecen los tre s puntos y apare ce la siguiente imagen
Y donde dice Add le damos clic tre s ve ce s agregando tres ttulos y modificamos sus propiedades Text para asignar ttulos como se repre senta en la imagen
Luego de Agregar tres ve ce s los ttulos del control listview modificamos su propiedad text; los titulos son: codigo, nombre, de scripcion luego damos clic en OK. Como mue stra la siguiente figura.
19
Como se habrn dado cuenta no muestra nada aun, tenemos que seguir configu rando el control en sus propiedades
Ahora modificamos la propiedad del control listview donde dice view y modificamos y le pone mos en details. Como mue stra la figura.
20
Ahora nos toca modificar la propiedad Gridlines y le damos en true. Luego M odificar la propiedad FullRowS ellect y le damos tb en true
Nota este control listview no puede cargar una imagen ya que es codigo binario
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As Sy stem.EventArgs) Handle s Button1.Click Try Dim cnn As New SqlConnection Dim comando As New SqlCommand Dim lector As SqlDataReader Dim fila A s ListViewItem
21
cnn.ConnectionString = cadenaconexion 'Llamo a la clase conexion cnn.Open() comando.CommandText = "select * from categoras" comando.CommandType = CommandType.Text comando.Connection = cnn Me.ListView 1.Items.Clear() lector = comando.ExecuteReader() If lector.HasRows = True Then While le ctor.Read fila = New ListViewItem fila.Text = CStr(le ctor.Item(0)) fila.SubItems.Add(CStr(le ctor.Item("nombre categoria"))) fila.SubItems.Add(CStr(le ctor.Item(2))) Me.ListView1.Items.Add(fila) End While End If lector.Close() cnn.Close() cnn.Dispose() Catch ex As Ex ception Me ssageBox.Show(ex.Message) End Try End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As Sy stem.EventArgs) Handle s Button2.Click Me.Close() End Sub End Class
22
23
Import s Syste m.Data.SqlClient Public Class Form1 Private adaptador As SqlDataAdapter Private d s As DataSet
Private Sub Form1_Load (ByVal sender A s Syste m.Object, ByVal e As Syste m.EventArgs) Handle s MyBase.Load Try Dim conexion As New SqlConne ction conexion.ConnectionString = "Server=(local) ; trusted_connection=yes; initial catalog=neptuno"
24
'asignar ds al datagrid Me.dgrddatos.DataSource = ds Me.dgrddatos.DataMe mber = "clientes" Catch ex As Ex ception Me ssageBox.Show(ex.Message) End Try End Sub
Private Sub btnclose_Click(ByVal sender As Syste m.Object, ByVal e A s Syste m.EventArg s) Handle s btnclose.Click Me.Close() End Sub End Class
25
26
Public Class MaestroDetalle Dim ds As New DataSet Private Sub Mae stroDetalle_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handle s MyBase.Load Dim conexion As New SqlConne ction conexion.Conne ctionString = "Server=(local); trusted_connection=yes; initial catalog=neptuno" Me.grddatos.CaptionText = "Mae stro Detalle" Me.grddatos.CaptionBackColor = Color.Red Me.grddatos.CaptionForeColor = Color.White Dim adaptadorclientes A s New SqlDataAdapter("select * from cliente s", conexion) Dim adaptadorpedidos As New SqlDataAdapter("select * from pedidos", conexion)
Me.grddatos.DataSource = d s
Me.grddatos.DataMember = "clientes"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As Sy stem.EventArgs) Handle s Button1.Click Me.Close() End Sub End Class
27