-1

tengo este codigo para pasar el dato:

   Using Conn As New SqlConnection("Data Source=SAMUELSUSANA; Initial catalog=poovb;integrated security=true")
        Conn.Open()
        Dim ConsultaSQL = "SELECT TOP 1 Codigo_venta FROM tblventas ORDER BY Codigo_venta DESC"
        lblcodigo.Text = New SqlCommand(ConsultaSQL, Conn).ExecuteScalar().ToString()
    End Using

Si mi tabla tiene al menos un codigo osea una venta funciona pero sino tiene arroja este error: Referencia a objeto no establecida como instancia de un objeto.

1 Answers1

0

El problema se da debido a que la función ExecuteScalar() retorna un nulo y que al momento de realizar ToString te arroja dicho error.


A lo comentado, solo sería necesario que valides que el valor que obtienes no sea nulo antes de convertirlo a cadena y para luego asignarlo a tu Label lblcodigo.

lblcodigo.Text = ""

Using Conn As New SqlConnection("Data Source=SAMUELSUSANA; Initial catalog=poovb;integrated security=true")
    Conn.Open()
    Dim ConsultaSQL = "SELECT TOP 1 Codigo_venta FROM tblventas ORDER BY Codigo_venta DESC"

    Dim Resultado = New SqlCommand(ConsultaSQL, Conn).ExecuteScalar()
    If Not Resultado = Nothing Then
        lblcodigo.Text = Resultado.ToString
    End If

End Using

Referencia:

Davlio
  • 2,900
  • 1
  • 13
  • 22
  • perdon por ser tan novato aun, pero se supone que con ese codigo si no tengo datos en la tabla que le va a pasar al label? por que no veo donde le asignes un valor si en dado caso el retorno del comando o execute scalar sea nulo – Samuel Ignacio Susana Confesor Aug 03 '17 at 00:04
  • ok ya analize y vi lo que hace tu codigo, gracias.. una pregunta si quisiera hacer eso en c# me podrias explicar como hacerlo en esta pregunta o debo de publicar otra? – Samuel Ignacio Susana Confesor Aug 03 '17 at 00:10
  • @SamuelIgnacioSusanaConfesor, al realizar `lblcodigo.Text = ""` le asigna una cadena vacía. Pero en caso sea nulo. ¿Que valor debería asignarle? – Davlio Aug 03 '17 at 00:12
  • @SamuelIgnacioSusanaConfesor, como indicas que aún eres novato; por el momento podrías usar un convertidor de código, por ejemplo, [Convert Code de Telerik](http://converter.telerik.com/) y ver como sería para `C#`. Si tienes problemas puedes realizar una nueva pregunta. – Davlio Aug 03 '17 at 00:15
  • esta bien ya lo arregle le asigne un valor 0 en caso de que sea nulo, voy a publicar la misma pregunta pero para c# por favor respondela – Samuel Ignacio Susana Confesor Aug 03 '17 at 00:15