none
Parametros vacios en acess y vb.net RRS feed

  • Pregunta

  • Buenos dias amigos

    Espero que me puedan ayudar, tengo una funcion en acess que hace que envie una consulta con parametros, el problema que tengo es que en vb.net cuando tengo un parametro en blanco, entoces hace que me arroje toda la informacion que tenga ese campo. Esta consulta si funciona bien en access pero en vb.net no me procesa la consulta.

    Private Sub LoadHdw(ByVal Site As String, ByVal Type As String, ByVal BU As String, ByVal Status As String)
            Try
                dgvHardware.DataSource = Nothing
                Dim SqlQuery As String = ""
                Dim Countpcs As Integer = 0
                If cboType.Text.Trim = "PCS" Then
                    SqlQuery = "SELECT Device_name, Login_Name, asset_id, Model, Brand, asset_cat, asset_subcat, Invoice, Origin, LocCity, LocCountry, " & _
                                           "PO_No, BU, Status, Emp_reg, Emp_Asign, Price, Quantity, ShipDate, RegDate, Comments, Mac, Mac2, Certificate, Building FROM Hardware " & _
                                           "WHERE (asset_subcat='LAPTOP' OR asset_subcat='DESKTOP') AND " & _
                                           "(((([@LocCity]) Is Null)) OR (((Hardware.[LocCity])=[@LocCity]) AND (([@LocCity]) Is Not Null))) AND " & _
                                           "(((([@BU]) Is Null)) OR (((Hardware.[BU])=[@BU]) AND (([@BU]) Is Not Null))) AND " & _
                                           "(((([@Status]) Is Null)) OR (((Hardware.[Status])=[@Status]) AND (([@Status]) Is Not Null))) " & _
                                           "ORDER BY ID DESC;"
                Else
                    SqlQuery = "SELECT Device_name, Login_Name, asset_id, Model, Brand, asset_cat, asset_subcat, Invoice, Origin, LocCity, LocCountry, " & _
                                         "PO_No, BU, Status, Emp_reg, Emp_Asign, Price, Quantity, ShipDate, RegDate, Comments, Mac, Mac2, Certificate, Building FROM Hardware " & _
                                         "WHERE (asset_subcat='" & Type & "') AND " & _
                                         "(((([@LocCity]) Is Null)) OR (((Hardware.[LocCity])=[@LocCity]) AND (([@LocCity]) Is Not Null))) AND " & _
                                         "(((([@BU]) Is Null)) OR (((Hardware.[BU])=[@BU]) AND (([@BU]) Is Not Null))) AND " & _
                                         "(((([@Status]) Is Null)) OR (((Hardware.[Status])=[@Status]) AND (([@Status]) Is Not Null))) " & _
                                         "ORDER BY ID DESC;"
                End If
    
                OleDs = New DataSet
                OleConn.Open()
                OleCmd = New OleDbCommand(SqlQuery, OleConn)
                OleCmd.CommandType = CommandType.Text
                OleCmd.Parameters.AddWithValue("@LocCity", Site)
                OleCmd.Parameters.AddWithValue("@BU", BU)
                OleCmd.Parameters.AddWithValue("@Status", Status)
    
                OleAdap = New OleDbDataAdapter(OleCmd)
    
                OleAdap.Fill(OleDs, "Hardware")
                OleConn.Close()
                If OleDs.Tables("Hardware").Rows.Count > 0 Then
                    Countpcs = OleDs.Tables("Hardware").Rows.Count
                    txtAdv1.Text = "Total of " & cboType.Text.Trim & " : " & Countpcs
                    dgvHardware.DataSource = OleDs.Tables("Hardware")
                    dgvHardware.Visible = True
                    lblStatus.Text = "Assets loaded..."
                    lblStatus.ForeColor = Color.ForestGreen
                Else
                    lblStatus.Text = "No data available..."
                    lblStatus.ForeColor = Color.Red
                End If
            Catch ex As Exception
                MessageBox.Show("Can't connect to database " & ex.Message)
            Finally
                OleConn.Close()
            End Try
        End Sub
    Les agradezco mucho su ayuda y saludos.

    • Cambiado Enrique M. Montejo miércoles, 7 de octubre de 2015 6:25 Pregunta relacionada con el acceso a datos.
    lunes, 5 de octubre de 2015 15:52

Todas las respuestas

  • Saludos:

    Todos los parametros son requeridos, es decir, no pueden ir en Null o vacios. Asegurate de que todos tengan un valor.

    Espero ayude.

    JOSE LUIS


    Dios NO los llamo LAS DIEZ RECOMENDACIONES

    lunes, 5 de octubre de 2015 16:36