none
Uso del DataSet Tipado RRS feed

  • Pregunta

  • Muy buenas noches una vez mas molestando, resulta lo siguiente estoy trabajando con dataset tipados a los que siempre les cargo sus procedimientos almacenados, pero veo que los dataset ya tienen unas consultas predefinidas.

    el Fill y el GetData(), que cuando lo ejecuto con botón derecho vista previa de datos me muestra una consulta con los datos, ahora hago lo siguiente

    public class CarnetIdentidad
        {
            public static CarnetIdentidadTableAdapter carnetIdentidadTableAdapter = new CarnetIdentidadTableAdapter();
    
            public static CarnetIdentidadDataTable UnicoCI()
            {
                return carnetIdentidadTableAdapter.GetData();
            }
    
        }

    en un botón hice lo siguiente

    private void button1_Click(object sender, EventArgs e)
            {
                //var Numero = from NumerCI in CarnetIdentidad.carnetIdentidadTableAdapter.Fill(CarnetIdentidad.UnicoCI())
                //             where NumerCI.
    
                             var Numero = from NumerCI in CarnetIdentidad.carnetIdentidadTableAdapter.GetData()
                                          where NumerCI.
            }

    como verán lo que necesito es hacer una consulta que me muestre el CI que tengo en una caja de texto.

    tal vez me pregunte porque quiero hacer esto, pues creo que quiero evitarme un procedimiento almacenado.

    el problema que tengo es que cuando quiero igualar con where NumerCI. no me aparecen los campos de mi tabla como en otras consultas Linq.

    me gustaría que me explique un poquito de como funciona todo esto y que estoy haciendo mal.

    pueden obviar el tema de explicarme tal vez no es un curso que quiero pero por favor ayúdenme a resolver si es que tiene solución, o caso contrario tendré que hacer mi procedimiento almacenando.

    les agradezco por la colaboración.

    Roberto

    jueves, 27 de junio de 2019 1:19

Respuestas

  • hola Roberto

    Hace muuucho que no uso DataSet tipado ... pero me parece, viendo tu código, que el método GetData() del TableAdapter te devuelve un DataTable (o algo parecido) ... y acá te paso como acceder a los campos de un DataTable

    str = dataTable.Rows[index].Field<string>(0);  // asigna el 1er campo de tipo string de la fila index+1
    
    num = dataTable.Rows[index].Field<int>(2);  // asigna el 3er campo int 
    
    

    O sea que no necesitas tocar la consulta 

    Saludos

    Pablo

    jueves, 27 de junio de 2019 2:03
  • hola

    >>tal vez me pregunte porque quiero hacer esto, pues creo que quiero evitarme un procedimiento almacenado.

    no veo que tiene que ver un procedimiento almacenado con usar dataset tipado con linq, podrias ejecutar un SELECT con su WHERE a una tabla definiendo la consulta sql

    Es mas pongamos que quieres usar dataset tipado, en ese caso puede personalizarlo con el sql que quieras

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

    puede agregar una nueva consulta

    Si sigues lo explicado en "Tutorial 4: Adding Parameterized Methods within Table Adapters" podrias agregar un metodo nuevo que reciba un parametro como filtro para que retorne una unica rows como respuesta

    usando la segunda opcion que retore un valor simple, asi no necesitas ningun linq

    Igual la verdad es que todo esto que quieres usar esta bastante anticuado, deberias plantearle aprender Entity Framework

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 27 de junio de 2019 2:34
  • hola

    >>un gran favor algunas literaturas o cursos de Entity Framework que me puedas recomendar para aprender.

    internet esta lleno de tutoriales, pero el sitio oficial quizas es el mejor lugar para arrancar

    Entity Framework 6

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 27 de junio de 2019 14:50
  • aqui solo agregando otra liga de EF

    contenplando EF core

    https://docs.microsoft.com/es-MX/ef/

    jueves, 27 de junio de 2019 17:04

Todas las respuestas

  • hola Roberto

    Hace muuucho que no uso DataSet tipado ... pero me parece, viendo tu código, que el método GetData() del TableAdapter te devuelve un DataTable (o algo parecido) ... y acá te paso como acceder a los campos de un DataTable

    str = dataTable.Rows[index].Field<string>(0);  // asigna el 1er campo de tipo string de la fila index+1
    
    num = dataTable.Rows[index].Field<int>(2);  // asigna el 3er campo int 
    
    

    O sea que no necesitas tocar la consulta 

    Saludos

    Pablo

    jueves, 27 de junio de 2019 2:03
  • Estimado Pablo.

    Buenas noches de antemano gracias por aportar y mas aun a esta hora.

    el tema es que necesito filtrar con linq precisamente desde el método GetData() y pues no se en que fila se encuentra el dato que quiero. así que debo buscar en toda las filas.

    pero gracias por el aporte.

    Roberto 

    jueves, 27 de junio de 2019 2:13
  • hola

    >>tal vez me pregunte porque quiero hacer esto, pues creo que quiero evitarme un procedimiento almacenado.

    no veo que tiene que ver un procedimiento almacenado con usar dataset tipado con linq, podrias ejecutar un SELECT con su WHERE a una tabla definiendo la consulta sql

    Es mas pongamos que quieres usar dataset tipado, en ese caso puede personalizarlo con el sql que quieras

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

    puede agregar una nueva consulta

    Si sigues lo explicado en "Tutorial 4: Adding Parameterized Methods within Table Adapters" podrias agregar un metodo nuevo que reciba un parametro como filtro para que retorne una unica rows como respuesta

    usando la segunda opcion que retore un valor simple, asi no necesitas ningun linq

    Igual la verdad es que todo esto que quieres usar esta bastante anticuado, deberias plantearle aprender Entity Framework

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 27 de junio de 2019 2:34
  • Muy bien Leandro Muchas gracias. justo así lo tuve que hacer gracias.

    un gran favor algunas literaturas o cursos de Entity Framework que me puedas recomendar para aprender.

    cierro el hilo muchas gracias.

    Roberto 

    jueves, 27 de junio de 2019 14:27
  • hola

    >>un gran favor algunas literaturas o cursos de Entity Framework que me puedas recomendar para aprender.

    internet esta lleno de tutoriales, pero el sitio oficial quizas es el mejor lugar para arrancar

    Entity Framework 6

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 27 de junio de 2019 14:50
  • aqui solo agregando otra liga de EF

    contenplando EF core

    https://docs.microsoft.com/es-MX/ef/

    jueves, 27 de junio de 2019 17:04
  • Muchas gracias, Pablo

    Roberto

    viernes, 28 de junio de 2019 12:32