none
[Ayuda][.NET] Complementar las bsuquedas de datos RRS feed

  • Pregunta

  • Lenguaje: VISUAL STUDIOS (.NET) Conexión : SQL SERVER 2008 R2 EXPRESS

    Hola a todos, estoy desarrollando una base de captura, edición y eliminación de una lista para los proveedores. Ahora ya esta listo la parte de la lectura, y quiero complementar la búsqueda antes de pasar a la parte de inserción, eliminación y actualización, este es proceso:

    Esta es la relación de la tabla, debido a que los proveedores por usual llegan a tener mas de una dirección

    1.- Al iniciar la forma debe poner la clave del proveedor

    2.- Si realiza la búsqueda y muestra sus datos pero el detalle es que debe poner la clave completa y exacta, (a pesar de que la sentencia SQL maneja LIKE)

    3.- Al momento de mostrar sus datos, muestra la opción, de que si cuenta con direcciones,

    4.- al momento de seleccionar el tipo de dirección, te muestra sus datos respectivo

    ¿De que manera pueda hacer que al momento de poner la letra, te muestre una sugerencia, ó la lista que lleve esa letra?

    Se que el textbox de buscar, puede usar las funciones AUTOCOMPLETEMODE y AUTOCOMPLETESOURCE, pero la verdad no se como complementarla, o de que manera conectarlo a la busqueda

    Anexo Codigo:

    Imports System.Data
    Imports System.Data.SqlClient
    Public Class F6Clientes
        Public sqlserverconnection As SqlClient.SqlConnection
        'Aqui declara la conexion de SQL a la base de datos
        Public Sub connecttosql()
            sqlserverconnection = New SqlClient.SqlConnection
            sqlserverconnection.ConnectionString = "Data Source=DELL-PC\COMPAC;Initial Catalog=BDAnexo;Integrated Security=True"
            sqlserverconnection.Open()
        End Sub
        Private Sub F6Clientes_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        End Sub
        'El evento al seleccionar el combobox para arrastrar los datos de la tabla
        Private Sub NomDirecComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles NomDirecComboBox.SelectedIndexChanged
            connecttosql() 'abro Conexion 
            Dim dt As New DataTable 'Declara donde se guadara
            '-----inicio de la funcion -----------------------------------------------------
            Dim sqlcmd = New SqlCommand("SELECT ClaveClie, NomDirec, NomyNum, Colonia, CodPostal, Ciudad, Estado, Pais, Telefono, Email from TbClieDir where claveclie='" & ClaveClieTextBox.Text & "' and nomdirec='" & NomDirecComboBox.Text & "'", sqlserverconnection)
            'declaro un data table y le digo que cargue el resultado del query en ella misma,
            dt.Load(sqlcmd.ExecuteReader)
            TbClave.Text = dt.Rows(0)(0).ToString
            TbDirc.Text = dt.Rows(0)(1).ToString
            TbNumero.Text = dt.Rows(0)(2).ToString()
            TbColonia.Text = dt.Rows(0)(3).ToString()
            TbCodPos.Text = dt.Rows(0)(4).ToString()
            TbCiudad.Text = (dt.Rows(0)(5).ToString())
            TbEstado.Text = dt.Rows(0)(6).ToString()
            TbPais.Text = dt.Rows(0)(7).ToString()
            TbTel.Text = dt.Rows(0)(8).ToString()
            TbEmail.Text = dt.Rows(0)(9).ToString()
            '-------------------------------------------FIN de la Funcion-----------------------
            disconnectfromsql()
        End Sub
        'Aqui por si la conexion se cae y la atrapas en una excepcion
        Public Sub disconnectfromsql()
            Try
                sqlserverconnection.Close()
            Catch ex As Exception
            End Try
        End Sub
        'Evento que muestra el resultado de una busqueda en el Texto de Clave
        Private Sub TbBuscar_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TbBuscar.KeyPress
            If e.KeyChar = Chr(13) Then
                NomDirecComboBox.Items.Clear()
                connecttosql()
                '----Busqueda para llenar TextBox --------------
                Dim CL As New DataTable
                Dim Query As String = "SELECT * FROM TbManClie WHERE ClaveClie LIKE'" & TbBuscar.Text & "'"
                Dim Busqueda As New SqlCommand(Query, sqlserverconnection)
                Dim Llenar As New SqlDataAdapter(Busqueda)
                Dim ds As New DataSet
                Llenar.Fill(ds, "Ok")
                If (ds.Tables(0).Rows.Count > 0) Then
                    ClaveClieTextBox.Text = ds.Tables(0).Rows(0)(0).ToString
                    NombreTextBox.Text = ds.Tables(0).Rows(0)(1).ToString
                    PaisVenTextBox.Text = ds.Tables(0).Rows(0)(2).ToString
                    VinculacionTextBox.Text = ds.Tables(0).Rows(0)(3).ToString
                    IdenFiscalTextBox.Text = ds.Tables(0).Rows(0)(4).ToString
                    NumImexTextBox.Text = ds.Tables(0).Rows(0)(5).ToString
                End If
                '----FIN DE LA FUNCION--------------------------
                NomDirecComboBox.Items.Clear()
                disconnectfromsql()
                connecttosql() 'Çonexion SQL ABIERTA
                '-----FUNCION PARA BUSCAR DIRECCIONES-------------------------------------------------------
                'Declaracion de la variable tabla para guardar, el total de direcciones
                Dim dt As New DataTable
                'Contador de Direcciones
                Dim cont As Integer
                'Setencia SQL, para obtener el resultados de direcciones
                Dim sqlcmd = New SqlCommand("select nomdirec from TbClieDir where claveclie='" & ClaveClieTextBox.Text & "'", sqlserverconnection)
                dt.Load(sqlcmd.ExecuteReader)
                'Delcarar si el TextBox esta en blanco
                'NomDirecComboBox.Items.Clear()
                ' Iniciar el contador para buscar en todas las direcciones
                For Each sdf In dt.Rows
                    NomDirecComboBox.Items.Add(dt.Rows(cont)(0).ToString)
                    cont = cont + 1
                Next
                disconnectfromsql()
            End If
        End Sub
    End Class
    Gracias por su atencion, espero su mas pronta respuesta


    jueves, 30 de julio de 2015 18:59