【问题标题】:Stored Procedures VB.NET MYSQL存储过程 VB.NET MYSQL
【发布时间】:2014-10-12 02:39:55
【问题描述】:

您好,我仍然有问题,它给我带来了 DBnull,我尝试了 Store 过程并且工作正常。这是我的代码。如果有人可以帮助我,我将不胜感激。

        conexion.Open()
        command.Connection = conexion
        command.CommandText = "TraerPaisOrigen"
        command.CommandType = CommandType.StoredProcedure

        command.Parameters.AddWithValue("@Cod_Dua", TxtCodDUA.Text)
        command.Parameters("@Cod_Dua").Direction = ParameterDirection.Input



        command.Parameters.AddWithValue("@_PaisOrigen", MySqlDbType.VarChar)
        command.Parameters("@_PaisOrigen").Direction = ParameterDirection.Output
        command.ExecuteNonQuery()

        'XML_PaisOrigen is a String

        XML_PaisOrigen = command.Parameters(0).Value.ToString




        conexion.Close()

我的商店已处理

CREATE PROCEDURE TraerPaisOrigen( IN Cod_Dua INT, OUT _PaisOrigen VARCHAR(2))

【问题讨论】:

  • 什么有效,什么无效?我找不到上面提到的任何问题?!
  • 结果,没有将 OUT 变量带入我的结果参数。

标签: mysql sql vb.net stored-procedures dbnull


【解决方案1】:

这个:

command.Parameters.AddWithValue("@Cod_Dua", TxtCodDUA.Text)
command.Parameters("@Cod_Dua").Direction = ParameterDirection.Input

应该是这样的:

command.Parameters.AddWithValue("@Cod_Dua", CInt(TxtCodDUA.Text))

这个:

command.Parameters.AddWithValue("@_PaisOrigen", MySqlDbType.VarChar)
command.Parameters("@_PaisOrigen").Direction = ParameterDirection.Output

应该是这样的:

command.Parameters.Add("@_PaisOrigen", MySqlDbType.VarChar, 2).Direction = ParameterDirection.Output

这个:

XML_PaisOrigen = command.Parameters(0).Value.ToString

应该是这样的:

XML_PaisOrigen = command.Parameters(1).Value.ToString()

【讨论】:

  • 您好!感谢您的回复,但仍然让我清空输出参数。我尝试了几种方法。我找不到我的问题的答案。这就是我如何调用我的存储过程并在数据库中正常工作。 SET @Cod_Dua=1;呼叫 TraerPaisOrigen(@Cod_Dua,@_PaisOrigen);选择@_PaisOrigen;结果答案:@_PaisOrigen:XX
  • cmets 中的代码几乎是不可读的,除非它是一行。请使用您当前的 VB 和 SQL 代码更新您的问题。
【解决方案2】:
         Try
            conexion.Open()
            command.Connection = conexion
            command.CommandText = "TraerPaisOrigen"
            command.CommandType = CommandType.StoredProcedure

            command.Parameters.AddWithValue("@Cod_Dua", CInt(TxtCodDUA.Text))
            command.Parameters("@Cod_Dua").Direction = ParameterDirection.Input              
            command.Parameters.Add("@_PaisOrigen", MySqlDbType.VarChar, 2).Direction = ParameterDirection.Output
            command.ExecuteNonQuery()

            XML_PaisOrigen = command.Parameters(1).Value.ToString

           conexion.Close()

        Catch ex As Exception
            MsgBox(ex.Message & vbCrLf & "Error al ejecutar << " & ex.Message, MsgBoxStyle.Critical, "Test")

        End Try

这就是我如何在 Mysql 中调用 DB 中的 SP 并且完美运行。

SET @Cod_Dua=1;
CALL TraerPaisOrigen(@Cod_Dua,@_PaisOrigen);
SELECT @_PaisOrigen;

我真的疯了,我看过教程和视频教程,它们都做相同或相似的事情。还有什么可能是 SP 没有从 DB 向我发送答案? 我对此进行了测试,并没有带来任何东西。总是去其他地方。

    If cmd.ExecuteNonQuery() > 0 Then
            XML_PaisOrigen = command.Parameters(1).Value.ToString
        Else
            MsgBox("Nothing!")
        End If

【讨论】:

    猜你喜欢
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 2011-07-01
    • 2017-04-26
    • 2011-03-09
    • 2011-03-31
    相关资源
    最近更新 更多