Visual Basic.NET - ExecuteScalar null

 
Vista:

ExecuteScalar null

Publicado por Marcela (7 intervenciones) el 14/08/2010 00:27:01
Hola...... estoy empezando con visual net y tengo un problema con una consulta de maximo valor.

El codigo que uso es:

Dim SelectComand As New OleDb.OleDbCommand
Dim Maximo As Long

SelectComand.CommandText = "SELECT max(idPersona) as max " & _
"FROM Personas;"
SelectComand.Connection = gConexion

Maximo = SelectComand.ExecuteScalar

En Maximo deberia devolver el maximo valor de Idpersona. Si la tabla esta vacia o tiene algun registro, el resulta es el mismo......... "Error 5.."

Alguien puede ayudarme....... porque no me devuelve el valor correcto o como pregunto si SelectComand.ExecuteScalar es NULL ??

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ExecuteScalar null

Publicado por Miguel (9 intervenciones) el 14/08/2010 03:20:55
Maximo = SelectComand.ExecuteScalar

En lugar de eso pon

if(SelectComand.ExecuteScalar () != DBNull.Value)
Maximo = SelectComand.ExecuteScalar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ExecuteScalar null

Publicado por erick geovanni alvarez samayoa (5 intervenciones) el 16/08/2010 02:17:36
yo lo hago con un reader , guardo el valor y ya lo paso a la variable, proba de esta forma, espero te sirva, saludos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Dim SelectComand As New OleDb.OleDbCommand
Dim Maximo As Long
 
SelectComand.CommandText = "SELECT max(idPersona) as max FROM Personas"
SelectComand.Connection = gConexion
 
Dir RLeer As Oledb.OleDbDataReader
 
RLeer = SelectComand.ExecuteReader
 
'SI NO TRAE DATOSS
If RLeer Is Nothing Then
                Maximo = 1
            Else
                'SI HAY DATOS
                If RLeer.HasRows = True Then
                    While RLeer.Read()
                        Maximo = RLeer.GetInt32(0)
                    End While
                Else
                    Maximo = 1
                End If
            End If
endif
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ExecuteScalar null

Publicado por Luis (1 intervención) el 21/01/2015 02:43:54
La manera más simple podría ser la siguiente:
1
2
3
4
Dim Cm as new OledbCommand("Select max(IdPersona) from personas",gConexión)
Dim Mx as long =0
if not Cm.executeScalar = DbNull.Value then Mx=Cm.ExecuteScalar
Cm.Dispose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar