none
Validad si encuentra si existe en la base de datos y si no existe acumularlas en una listbox RRS feed

  • Pregunta

  • Buenas, necesito de su ayuda nuevamente, necesito que cuando un haga una consulta multiple, Me muestre las que se encuentran en la base y cuando no se encuentran en la base de datos que muestre cuales no fueron encontradas en un listbox. 

     Dim dtSuma As New DataTable
            Dim dtParcial As New DataTable
            Dim lsQuery As String = String.Empty
            Dim msCadenaSQL As String = "Data Source=.\SQLEXPRESS;Initial Catalog=INTENTO2;Integrated Security=true"
            Try
                Using Conexion As New SqlConnection(msCadenaSQL)
                    Conexion.Open()

                    For Each item As Object In Me.ListBox1.Items
                        lsQuery = "SELECT * FROM DATOS WHERE CEDULA =" & item.ToString
                        Using lDataAdapter As New SqlDataAdapter(lsQuery, Conexion)
                            lDataAdapter.Fill(dtParcial)
                            dtSuma.Merge(dtParcial)
                        End Using
                        dtParcial.Clear()
                    Next
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
            Me.DataGridView2.DataSource = dtSuma

    Este es el codigo que tengo para cosultar.

    jueves, 9 de noviembre de 2017 17:50

Respuestas

  • Estás recorriendo los items del primer Listbox y desde que existe el primero en la tabla, como Mensaje deja de estar vacío, añades al 2º Listbox la cadena del mensaje que se va acumulando (repitiendo). Debes hacer alfo como

     If dtParcial.Rows.Count <= 0 Then
          ListBox2.Items.Add( item.ToString)
    End If


    Saludos, Javier J

    • Marcado como respuesta Ruben_Mendoza jueves, 9 de noviembre de 2017 19:13
    jueves, 9 de noviembre de 2017 18:30

Todas las respuestas

  • La pregunta del presente hilo, ¿no es la misma que Validad si existe en la BD o si no existe, mediante un listbox?

    Si se trata de los mismo evita duplicar contenido, si no obtienes respuesta replica sobre el hilo original.

    jueves, 9 de noviembre de 2017 17:56
  • Es un tanto diferente es este caso intente hacer otra cosa ya lo logre pero me sale esta manera, cuando no esta lo pone en el list box, pero si no hay dos, pone el primero y el segundo juntos algo asi. 

     Dim dtSuma As New DataTable
            Dim dtParcial As New DataTable
            Dim lsQuery As String = String.Empty
            Dim msCadenaSQL As String = "Data Source=.\SQLEXPRESS;Initial Catalog=INTENTO2;Integrated Security=true"
            Dim Mensaje As String = ""
            Try
                Using Conexion As New SqlConnection(msCadenaSQL)
                    Conexion.Open()

                    For Each item As Object In Me.ListBox1.Items
                        lsQuery = "SELECT * FROM DATOS WHERE CEDULA=@Cedula"
                        Using lDataAdapter As New SqlDataAdapter(lsQuery, Conexion)
                            lDataAdapter.SelectCommand.Parameters.AddWithValue("@Cedula", item.ToString)
                            lDataAdapter.Fill(dtParcial)
                            dtSuma.Merge(dtParcial)
                            If dtParcial.Rows.Count <= 0 Then
                                Mensaje = Mensaje & item.ToString & vbCrLf
                            End If
                            If Mensaje <> "" Then
                                ListBox2.Items.Add(Mensaje)
                            End If
                        End Using
                        dtParcial.Clear()
                    Next
                End Using

            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try

            Me.DataGridView2.DataSource = dtSuma

    Este es el codigo que implemente, supongo que el cambio debe de ser en la parte que esta en negrita.

    jueves, 9 de noviembre de 2017 18:08
  • Estás recorriendo los items del primer Listbox y desde que existe el primero en la tabla, como Mensaje deja de estar vacío, añades al 2º Listbox la cadena del mensaje que se va acumulando (repitiendo). Debes hacer alfo como

     If dtParcial.Rows.Count <= 0 Then
          ListBox2.Items.Add( item.ToString)
    End If


    Saludos, Javier J

    • Marcado como respuesta Ruben_Mendoza jueves, 9 de noviembre de 2017 19:13
    jueves, 9 de noviembre de 2017 18:30