locked
Trabajar con sql query RRS feed

  • Pregunta

  • Hola amigos pues tengo un problema, necesito realizar consultas a una base de datos SQL SERVER que estoy realizando y que tendria que proyectarlas en visual basic, el caso es que no se como utilizar las consultas en visual basic.

    Mi idea principal es realizar una consulta a dos tablas y poder proyectarlas en un datagridView.

    Con access era sencillo, solo tenia que crear la consulta y luego en el visual creaba mi datagridView y lo relacionaba a la consulta que habia creado. Pero ahora que ando con sql server no tengo la menor idea de como hacer algo parecido.

    Me gustaria cual es el procedimiento para manipular las consultas por Visual basic

    lunes, 28 de marzo de 2011 13:13

Respuestas

Todas las respuestas

  • hola

    pero sabes progamar con ado.net ? o sea suar los objetos SqlConnection y SqlCommand ?

     

    [ADO.NET] Parte 5 - Ejemplos Simples Operaciones CRUD

    con esto podrias hacer

    Using cnn As New SqlConnection(connstring)

        Dim query As String = "SELECT T1.id, T1.Desc, T2.Desc As DescT2 FROM Tabla1 T1 INNER JOIN Tabla2 T2 ON T1.Id = T2.Id"
        Dim cmd As New SqlCommand(query, oConn)
       

        Dim da As New SqlDataAdapter(cmd)
        Dim dt As New DataTable
        da.Fill(dt)
      
        DataGridView1.DataSource = dt

    End Using

    alli por medio del INNER JOIN relacionas las tablas las cargas en un DataTable y lo muestras en el grid

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 28 de marzo de 2011 13:22
  • Bueno se trabajar muy poco con ADO.NET, porque la mayor parte de los ejemplos que consigo para conectar a base de datos no usan el ADO sino la interfaz de visual para mostrar, guardar, modificar, etc. De todas maneras muchas gracias por tu respuesta y por el link, lo estare revisando para ver si puedo solucionar mi problema, de todas maneras casi consegui lo que que queria:

    En mi explorador de soluciones cuando abro mi dataset me muetra dos tablas que tengo y sus relaciones, en una de las tablas selecciono para crear una consulta, la consulta la realizo llamando a las columnas que quiero de ambas tablas, luego me voy a mi DatagridView, y en las propiedades selecciono el datasource, especificamente la tabla donde cree la consulta, selecciono la consulta que hice anteriormente y funciona, solo que me esta mostrando un solo valor, quizas sea por el tipo de relacion de las tablas, tendria que seguir probando esa parte.

     

    Como te explique anteriormente funciona, pero parcialmente, ahora si lo que quisiera es insertar pues ahi si no se.

    lunes, 28 de marzo de 2011 13:43
  • cuando abro mi dataset me muetra dos tablas que tengo y sus relaciones, en una de las tablas selecciono para crear una consulta, la consulta la realizo llamando a las columnas que quiero de ambas tablas

    ahh vas por el lado de los dataset tipados, o sea tienes un xsd donde defines las relaciones

    el tema es que el datagridview no se lleva muy bien con informacion anidada, deberias aplanar la info para que esto pueda lograrse

    por eso es que comente el uso del JOIN para crear un SELECT que uan ambas tablas

    tambein creo que deberia extender la funcionalidad

     

    Building a DAL using Strongly Typed TableAdapters and DataTables in VS 2005 and ASP.NET 2.0

    Tutorial 1: Creating a Data Access Layer

    creando tu propio metodo que implmente este SELECT particular y cargue un datatable especial

    saludos

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 28 de marzo de 2011 13:50
  • Veo que usas el Wizard para acceder a los datos, Aca te paso un Link muy interesante para lo que pides.

    http://eperedo.comze.com/2009/10/agregar-editar-eliminar-datos-a-bd-desde-dataset/

     

    Ahora si deseas hacerlo todo por codigo sin usar el Wizard, que es lo mas recomendable para que tengas mayor control de tu codigo, aca te paso otro link.

    http://eperedo.comze.com/2009/11/mantenimiento-de-datos-con-net-parte-iii/

     

    Espero haberte ayudado.


    Programador .NET - Desarrollador 5 Estrellas.
    lunes, 28 de marzo de 2011 13:50
  • Bueno si, me estoy llendo por el dataset, pero en estos 3 meses que es estado trabajando con visual y el wizard creando conexiones a base de datos por medio de datasets me doy cuenta que es util pero es limitado cuando las busquedas son mas complejas, a veces prefiero tener el codigo para poder leerlo, entenderlo y aplicarlo a mis necesidad ademas que por medio de los datasets a veces se me complica mucho manipularlos.

     

    Y por el hecho de no dominar bien estos conocimientos estoy muy limitado con el sistema de informacion que estoy realizando. Mi sistema de informacion hace lo siguiente: Captura postulantes para luego participar en pruebas psicotecnicas, los que resultan aprobados se clasifican como Elejibles y los que no apruebas pues tienen chance de presentar la prueba de nuevo. De ese sistema Apenas tengo tres tablas

    Usuarios : Donde se almacenan los usuarios que ingresaran al sistema
    Postulantes: Toda la data personal de los Postulantes
    Papeles_Postulantes: Toda la serie de documentos que deben traer los postulantes para su expediente.

    Segun mis necesidades solo me faltaria una tabla para almacenar las fechas de las pruebas Psicotecnicas y la tabla de Elejibles, la idea de las tabla elejibles es guardar a los que aprobaron, ejemplo: Si Juan Aprobo, desaparece de la tabla postulantes y se ingresa en la de Elejibles

    Entonces por no saber manipular bien los datos me veo obligado a depositar casi todos los datos que necesito en la tabla Postulantes, pero eso esta mal, primero porque no se debe hacer asi, segundo porque este es mi trabajo de grado y el jurado me va a comer vivo si se da cuenta que hice algo asi.


    De todas maneras muchas gracias, estare revisando sus links y sugerencias, espero que me sirvan de mucha ayuda

    lunes, 28 de marzo de 2011 14:17
  • Buenos dias, yo tengo 1 año de trabajar con ADO y es mucho mejor de cierta manera, soy muy novato pero me he dado cuenta de muchas de sus vestajas, aun al lado del LINQ. El problema de usar un wisard siento que cae en el momento de hacer ciertos cambios a nuestras aplicaciones y hemos utilizado alguna herramiento que nos facilita el desarrollo de algunas areas, no tenemos al 100 % todo lo que sucede en ese código siento que realizar nuestras conexiones nos dan una ventaja sobre ellos y nos ayudan a poder dominarlos mejor.

    Como les digo es una muy humilde opinión, y me gustaria ser retroaliemtado si me equivoco, gracias y buenos dias

    lunes, 28 de marzo de 2011 15:35
  • Casi consigo lo que queria, excepto por una serie de detalles con los que me tropece y me estan complicando el trabajo:

    El señor Leandro coloco el siguiente codigo que permite realizar consultas con mas de 2 tablas relacionadas:

        Dim query As String = "SELECT T1.id, T1.Desc, T2.Desc As DescT2 FROM Tabla1 T1 INNER JOIN Tabla2 T2 ON T1.Id = T2.Id

     

    El codigo funciona de maravilla, te lo agradezco, luego me pude dar cuenta que por medio de mi dataset puedo crear TableAdapters, yo selecciono crear uno nuevo, permitiendome integrar las dos tablas que necesito por medio de un SELECT y Wizard me genera automaticamente mi INNER JOIN. Luego mas adelante agrego mi DatagridView y lo relaciono al TableAdapter que acabo de crear y que se encuentra dentro de mi dataset, puedo ver mis datos perfectamente en el DataGrid pero esta vez no me esta generando automaticamente las opciones de guardar, me explico: al momento de crear el tableadapter yo habilito la funcionalidad de generarme SELECT, INSERT, UPDATE y DELETE, pero en este caso que estoy usando dos tablas relacionadas el Wizard no me esta creando opciones de INSERT, DELETE y UPDATE.

     

    Asi que mi problema ahora es guardar nuevoos datos de mi DataGrid a la base de datos, por supuesto tambien necesito modificar y eliminar.

    Creo que ya estoy un poco mas cerca de la solucion

    lunes, 28 de marzo de 2011 19:11