【发布时间】:2014-10-14 07:20:08
【问题描述】:
我遇到的问题是存储过程没有在我的 VB.NET 端给我带来结果。当我在 Mysql 数据库中测试我的存储过程时,它运行良好。所以我假设那是 VB.NET 方面。我尝试了很多我在网上看到的方法,它们与我在下面放置的代码非常相似。所以告诉我我做错了什么?当我连接到我的 OUT PARAMETER 中无法收到任何答案的数据库时,我如何评估正在发生的事情。
Try
conexion.Open()
command.Connection = conexion
command.CommandText = "DUA_ENCABEZADO_TRAERPAISORIGEN"
command.CommandType = CommandType.StoredProcedure
command.Parameters.AddWithValue("@COD_DUA", CInt(TxtCodDUA.Text))
command.Parameters("@COD_DUA").Direction = ParameterDirection.Input
command.Parameters.Add("@CODIGO_PAIS", 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, "Error Popup")
End Try
'XML_PaisOrigen 是一个字符串
这是我的 Mysql SP:
CREATE DEFINER=`root`@`localhost` PROCEDURE `DUA_ENCABEZADO_TRAERPAISORIGEN`(
IN COD_DUA INT,
OUT CODIGO_PAIS VARCHAR(2))
这是我对 SP 的调用,在 MYSQL 端工作:
SET @COD_DUA =1;
CALL DUA_ENCABEZADO_TRAERPAISORIGEN(@COD_DUA,@CODIGO_PAIS);
SELECT @CODIGO_PAIS;
【问题讨论】:
-
你试过这种方式吗 command.Parameters("@CODIGO_PAIS").Value.ToString();
-
是的,我试过了。结果仍然给我带来了 DBnull。
-
我假设您已经安装了 MySql 安装程序/连接器来访问 MySql DB ?
-
是的,先生,我已连接到进行插入、更新、删除、选择。在我所有的应用程序和作品中都很完美。但回到我的问题是具体的存储过程。
标签: mysql asp.net vb.net stored-procedures error-handling