Visual Basic.NET - ExecuteNonQuery con Mysql

   
Vista:
Imágen de perfil de kike

ExecuteNonQuery con Mysql

Publicado por kike kiketo@hotmail.com (13 intervenciones) el 18/09/2015 15:54:32
Buenos dias a todos, desarolle un sistema con Vb.net 2010 y sqlserver 2008, pero el cliente lo desea con MYsql, empezé a cambiar el código pero tengo un problema , cuando ejecuto el ExecuteNonQuery de un procedimiento almacenado me sale el error : Referencia a objeto no establecida como instancia de un objeto.
mi código es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Public Class FrmAreas
    Private dt As New DataTable
 
    Private Sub FrmAreas_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        mostrar_area()
    End Sub
 
    Private Sub mostrar_area()
        Try
            Dim func As New Fareas
            dt = func.mostrar_area
            If dt.Rows.Count <> 0 Then
                DgArea.DataSource = dt
           Else
                DgArea.DataSource = Nothing
           End If
 
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Class

la funcion mostrar áreas es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Imports MySql.Data.MySqlClient
Public Class Fareas
    Inherits Conexion
    Dim cmd As New MySqlCommand
    Public SwErr As Integer
    Public Function mostrar_area() As DataTable
        Try
            conectado()
            cmd = New MySqlCommand("mostrar_areas")
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = cnn
         If cmd.ExecuteNonQuery Then
                Dim dt As New DataTable
                Dim da As New MySqlDataAdapter(cmd)
                da.Fill(dt)
                Return dt
            Else
                Return Nothing
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
            Return Nothing
        Finally
            desconectado()
        End Try
    End Function
End Class

el If cmd.ExecuteNonQuery then al parecer no lo ejecuta pues siempre bifurca al else.... y luego sale el error mencionado..... cualquier sugerencia para solucionar esto será bienvenida y agradecida...... kike torres
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

ExecuteNonQuery con Mysql

Publicado por David (45 intervenciones) el 18/09/2015 17:47:11
Según tu código, la función mostrar_area() no ejecuta una consulta normal, ejecuta un procedimiento almacenado llamado mostrar_areas.
Puede ser que no exista ese procedimiento almacenado en la BB.DD. MySQL?
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
Imágen de perfil de kike

ExecuteNonQuery con Mysql

Publicado por kike (13 intervenciones) el 18/09/2015 18:36:46
Si existe el procedimiento almacenado mostrar_areas , es un simple
SELECT * FROM TAREA
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
Imágen de perfil de Wilfredo Patricio Castillo

ExecuteNonQuery con Mysql

Haces mal en esperar un valor booleano en tu sentencia

if cmd,.executenonquery then

eso no devuelve un valor booleano, sino la cantidad de registros afectado por la consulta cuando es una consulta de acción.

En tu caso debería quitar esa condición y solo llenar los datos, ya posteriormente puede verificar si el datatable está lleno o no.

Saluos cordiales,
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