la consulta es la siguiente:
Código MySQL:
Ver original
Esta consulta esta correcta por que en el administrador de mysql retorna el valor que se desea, que debe ser 126
tengo una funcion que creo deberia funcionar para obtener ese valor en un string y usarlo en mi codigo... la funcion es la siguiente...
Previamente se han importado las MySql.Data.MySqlClient
Código vb:
Ver original
'declaramos la cadena de conexión Dim ConStr As String = "server=localhost;User Id=root;password=0231;database=sislacoh;Persist Security Info=True" 'instanciamos un objeto conexion 'y le pasamos de parametro la variable con la cadena Dim Con As New MySqlConnection(ConStr) 'creamos la funcion para insertar, Update o delete que devuelve ' un valor tipo string (cadena de texto) 'con un parametro que contendrá la cadena de conexión Public Function MiFuncion(ByVal query As String) As String 'creamos el objeto comando y le pasamos el parámetro que contiene la query y la conexion Dim Comando As New MySqlCommand(query, Con) 'Try para capturar los errores Try 'antes de abrir conexión nos aseguramos que no exista conexión establecida previa If Not Con Is Nothing Then Con.Close() 'abrimos conexión Con.Open() 'declaramos la variable de tipo entero que contendrá las filas afectadas y ejecutamos 'el comando Dim res As Integer = Comando.ExecuteNonQuery() 'mandamos como retorno en múmero de filas afectadas 'pero utilizamos Tostring para pasar el valor de número entero a cadena de texto 'porque hay que recordar que la función devuelve un valor de tipo string Return res.ToString 'capturamos a partir de aquí si hay errores Catch ex As Exception 'y si hay errores retornamos el mensaje de error Return MsgBox(ex.Message, MsgBoxStyle.Critical) 'y con Finally que es parte de TRY CATCH y END TRY 'ponemos el código que se ejecutará se produzca o no un error Finally 'cerramos la conexión Con.Close() 'y esto es muy importante, el objeto comando que habiamos creado 'lo eliminamos de la memoria Comando = Nothing 'finalizamos la captura de errores End Try End Function
Esta funcion la he usado para ejecutar unos insert o updates y me ha funciona correctamente, lo que indica que si se comunica con la base de datos...
y en este caso la impmente asi
Código vb:
Ver original
Dim valor As String = MiFuncion("SELECT count(*) FROM sesion")
En este caso el resultado que siempre me devuelve es "-1", y no "126" no logro entender... alguna orientacion. o alguna otra forma de hacer esto...
PD.
Uso Vb.net 2008, mysql server 5.1 y Mysql Connector net 6.3.5