none
ENCONTRAR CADENA DE TEXTO EN DATAGRIDVIEW RRS feed

  • Pregunta

  • Hola, necesito que me ayuden un poco , cargo a un data toda la informacion de mi consulta, pero quiero que al momento de recorrer el data, me muestre la cantidad de "Aceptados" tengo este codigo, pero no se si estara bien, por que el valor de las variable siempre me las deja en cero, con el valor que las inicio.. ojala alguien me pueda ayudar, que llevo dias intentando esto..

     

    Private Sub CalcularValores()
    
        ' contador de organoelepticos
        Dim co As Double = 2
        'contador de Rotulacion
        Dim ce As Double = 2
        Dim i As Integer
    
        For i = 1 To data.RowCount - 1
    
          ' pregunta por la posicion donde esta el organoeleptico
    
          If data.Rows(i).Cells(7).Value Is "Aceptado" Then
            co += 1
          End If
          ' pregunta por la posicion donde esta Rotulacion
          If data.Rows(i).Cells(8).Value Is "Aceptado" Then
            ce += 1
          End If
        Next
    
        ' obtener porcentaje por regla de tres
    
        Dim poro As Double = CInt(co * 100)
        Dim pore As Double = CInt(ce * 100)
        ' al final mostramos en los label
    
       
    
    
      End Sub
     

     

     

     

    
    
    MUCHAS GRACIAS POR LA AYUDAAA..
    • Cambiado Enrique M. Montejo lunes, 30 de enero de 2012 12:02 controles de Windows Forms (De:Lenguaje VB.NET)
    lunes, 23 de agosto de 2010 19:49

Todas las respuestas

  • Yo lo haria de esta manera:

    Dim contador As Integer
    contador = ds.tables(0).Select("nombrecampo='Aceptado'").Count
    MsgBox(contador)

    buscar dentro del dataset (ds.tables(0)) en el que has cargado los datos el campo cuyo valor="Aceptado", lo guardar en una variable y trabajas con el valor devuelto.


    nunca te acostarás sin saber una cosa más
    lunes, 23 de agosto de 2010 20:02
  • hola

    podrias usar linq

    DataGridView – Búsqueda con Linq

    con ese obtendrias las rows y podrias usar el metodo Count de la coleccion para saber el numero de coinciencias con la busqueda

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 23 de agosto de 2010 20:04
  • hola

    podrias usar linq

    DataGridView – Búsqueda con Linq

    con ese obtendrias las rows y podrias usar el metodo Count de la coleccion para saber el numero de coinciencias con la busqueda

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    ALGO ASI ES MAS O MENOS LO QUE NECESITO, PERO NO SE ME VIENE A LA CABEZA COMO PLASMARLO, Y PROGRAMARLO
    lunes, 23 de agosto de 2010 20:19
  • El código que te he propuesto no funciona? ¿Como llenas el datagridview?
    nunca te acostarás sin saber una cosa más
    lunes, 23 de agosto de 2010 20:26
  • hola

    podrias ser algo como esto

        Dim rows As List(Of DataGridViewRow) = (From item In DataGridView1.Rows.Cast(Of DataGridViewRow)() _
                              Let campo1 = Convert.ToString(If(item.Cells(7).Value, String.Empty)) _
                              Let campo2 = Convert.ToString(If(item.Cells(8).Value, String.Empty)) _
                           Where campo1 = "Aceptado" OrElse campo2 = "Aceptado" _
                           Select item).ToList()
    
        txtCantidad.Text = Convert.ToString(rows.Count)

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 23 de agosto de 2010 20:33
  • El código que te he propuesto no funciona? ¿Como llenas el datagridview?
    nunca te acostarás sin saber una cosa más

    asi de esta forma
     Private Sub data1( _
      ByVal data As DataGridView, _
      ByVal sql As String)
    
        ' nueva conexión indicando al SqlConnection la cadena de conexión  
        Dim cn As New SqlConnection(cs)
    
        Try
    
          ' Abrir la conexión a Sql  
          cn.Open()
    
          ' Pasar la consulta sql y la conexión al Sql Command  
          Dim cmd As New SqlCommand(sql, cn)
    
          ' Inicializar un nuevo SqlDataAdapter  
          Dim da As New SqlDataAdapter(cmd)
    
          'Crear y Llenar un Dataset  
    
          da.Fill(ds)
    
          ' asignar el DataSource al combobox  
          data.DataSource = ds.Tables(0)
    
          '' Asignar el campo a la propiedad DisplayMember del combo  
          ' data.DisplayMember = ds.Tables(0).Columns(0).Caption.ToString
    
          'llamamos al procedimiento CalcularValores
    
          Calcular()
          CalcularValores()
    
        Catch ex As Exception
          MessageBox.Show(ex.Message.ToString, _
                  "error", MessageBoxButtons.OK, _
                  MessageBoxIcon.Error)
        Finally
          If cn.State = ConnectionState.Open Then
            cn.Close()
          End If
        End Try
      End Sub
    
    el nombre del datagridview es "data"
    lunes, 23 de agosto de 2010 20:48
  • hola

    podrias ser algo como esto

     

      Dim rows As List(Of DataGridViewRow) = (From item In DataGridView1.Rows.Cast(Of DataGridViewRow)() _
    
                 Let campo1 = Convert.ToString(If(item.Cells(7).Value, String.Empty)) _
    
                 Let campo2 = Convert.ToString(If(item.Cells(8).Value, String.Empty)) _
    
                Where campo1 = "Aceptado" OrElse campo2 = "Aceptado" _
    
                Select item).ToList()
    
    
    
      txtCantidad.Text = Convert.ToString(rows.Count)
    
    

     

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    me tira error en lo subrrayado
    lunes, 23 de agosto de 2010 20:52
  • que mensajes muestra ?

    revisa el cuadro o lista de errores

     

    saludo

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 23 de agosto de 2010 20:54
  • Imports System.Data.SqlClient

    Public Class Form1
        Dim conexion As New SqlConnection
        Dim DS As New DataSet

        Public Sub New()
            ' This call is required by the designer.
            InitializeComponent()
            conexion.ConnectionString = "....La que corresponda"
        End Sub

        Private Sub cargar_datos()
            Try
                'Realizo la consulta
                Dim sql As String = "Select ..... lo que corresponda"
                Dim DA As New SqlDataAdapter(sql, conexion)
                DA.Fill(DS, "datos")
                'Lleno el datagrid con datos
                Me.data.DataSource = DS.Tables(0)
                'Calculo los valores
                CalcularValores()
            Catch ex As Exception
                MessageBox.Show(ex.Message.ToString, "error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Finally
                conexion.Close()
            End Try
        End Sub

        Private Sub CalcularValores()
            ' contador de organoelepticos
            Dim co As Double = 2
            'contador de Rotulacion
            Dim ce As Double = 2

            co += DS.Tables(0).Select("nombrecampo nº 7='Aceptado'").Count
            ce += DS.Tables(0).Select("nombrecampo nº 8='Aceptado'").Count

            ' obtener porcentaje por regla de tres
            Dim poro As Double = CInt(co * 100)
            Dim pore As Double = CInt(ce * 100)
            ' al final mostramos en los label

        End Sub

    End Class

     


    nunca te acostarás sin saber una cosa más
    martes, 24 de agosto de 2010 2:23
  • Imports System.Data.SqlClient

    Public Class Form1
        Dim conexion As New SqlConnection
        Dim DS As New DataSet

        Public Sub New()
            ' This call is required by the designer.
            InitializeComponent()
            conexion.ConnectionString = "....La que corresponda"
        End Sub

        Private Sub cargar_datos()
            Try
                'Realizo la consulta
                Dim sql As String = "Select ..... lo que corresponda"
                Dim DA As New SqlDataAdapter(sql, conexion)
                DA.Fill(DS, "datos")
                'Lleno el datagrid con datos
                Me.data.DataSource = DS.Tables(0)
                'Calculo los valores
                CalcularValores()
            Catch ex As Exception
                MessageBox.Show(ex.Message.ToString, "error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Finally
                conexion.Close()
            End Try
        End Sub

        Private Sub CalcularValores()
            ' contador de organoelepticos
            Dim co As Double = 2
            'contador de Rotulacion
            Dim ce As Double = 2

            co += DS.Tables(0).Select("nombrecampo nº 7='Aceptado'").Count
            ce += DS.Tables(0).Select("nombrecampo nº 8='Aceptado'").Count

            ' obtener porcentaje por regla de tres
            Dim poro As Double = CInt(co * 100)
            Dim pore As Double = CInt(ce * 100)
            ' al final mostramos en los label

        End Sub

    End Class

     

     


    nunca te acostarás sin saber una cosa más

    Error 2 'Count' no es un miembro de 'System.Array'. 

    me da ese error dos veces acerca del Count ... q sera?

    muchas gracias por tu ayuda...

    martes, 24 de agosto de 2010 13:28

  • del uso de linq, tienes los mensajes de errores que mencionaste

    creo que contar con linq queda maslimpio el codigo que recorrer cada registro

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 24 de agosto de 2010 13:43

  • del uso de linq, tienes los mensajes de errores que mencionaste

    creo que contar con linq queda maslimpio el codigo que recorrer cada registro

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    me podrias ayudar un poco mas?
    martes, 24 de agosto de 2010 13:50

  • claro seguro

    pero no has mencionado cuales son los errores que muestra cuando usaste el ejemplo del linq que porporcione

     

    saludo


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 24 de agosto de 2010 15:02
  • siempre me gusta ser claros en mis dudas, para que me entiendan, por eso siempre subo imagenes.. asi que mira.

     

    [img] http://img818.imageshack.us/img818/1674/sshot9.png [/img]

     

    recordar que el nombre de mi datagried, es data

    martes, 24 de agosto de 2010 15:36

  • una consulta, estas usando VS2008 en un proyecto que use .net 3.5 ? o estas uando .net 2.0

    lo pregnto porque en la verson 2.0 no esta prsene linq para poder usarse

     

    es raro tengo ese mismo codigo en un proyecto y no marca ningun error

    lo que me extraña es que la sentencia "From" no la este marcando en color, si escribes From te detectael inelisense de VS ?

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 24 de agosto de 2010 17:01