Colabora |
Uso de Parámetros en procedimientos almacenados con .NET y MySQLCómo usar procedimientos almacenados y sus parámetros usando MySQLConnector y .NET
Fecha: 18/Oct/2007 (11-oct-07)
|
IntroducciónDespués de intentos infructuosos, pedir ayuda y buscar información por aquí y por allá, conseguí algo a priori sencillo (siempre temo las cosas a priori sencillas): Usar parámetros con procedimientos almacenados bajo bases de datos MySQL. Como prometí, aquí pongo este trozo de conocimiento para todo aquel que necesite trabajar contra MySQL desde .NET. El código es muy fácil pasarlo a C# y otros asi que... Aquí se puede ver desde cómo conectar con una base de datos MySQL (ya existe información por estos lares) hasta como usar procedimientos almacenados pasándo parámetros. Para ello uso programación en Visual Basic .NET 2003, las librerías de MySQLConnector 5.0 (http://www.mysql.com) y por supuesto MySQL.
Manos a la obraPrimero creamos un procedimiento almacenado en nuestra base de datos. CREATE DEFINER=`root`@`localhost` PROCEDURE `mi_procedimiento`(IN mi_variable VARCHAR(15)) pasamos la variable de entrada (de entrada: "IN", de salida: OUT, ambas: INOUT [o algo así ;-)]) mi_variable que es un texto. Ahora toca usar el procedimiento almacenado en la base de datos desde nuestra aplicación en Visual Basic .NET ¿Cómo? sencillo (lo sencillo que se hace cuando ya lo sabes jejeje) Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click El primer bloque consiste en conectar con la base de datos, creo que en este punto no hace falta explicar como se conecta con la base de datos porque es idéntica a cualquier otra conexión con bases de datos diferentes. Ahora toca crear el comando que va a llamar al procedimiento almacenado: Dim comando As New MySqlCommand("mi_procedimiento", con) comando.CommandType = CommandType.StoredProcedure sencillo, ¿no? declaramos el objeto MySQLCommand y le decimos (2ª lïnea) que se trata de un procedimiento almacenado. Ahora toca lo interesante: pasarle el parámetro (con lo sencillo que se hacía en SQLServer). Dim p As New MySqlParameter("?mi_variable", MySql.Data.MySqlClient.MySqlDbType.VarChar) Muy importante: dar la dirección del parámetro de entrada/salida (en mi caso, y teniendo en cuenta mis escasos dummie-conocimientos, era la única manera de que funcionara). El resto es como lo demás, declaras y creas el objeto parámetro (1ª línea), especificando el parámetro y su tipo, darle un valor (2ª línea), especificar la dirección (3ª línea) y añadirselo al comando (última línea) porque si no esto no vale "pa ná". El último bloque es como el resto, en mi caso un datareader captura el resultado y lo proceso mostrando el valor del primer campo. El código completo:Primero, el procedimiento almacenado en MySQL: CREATE DEFINER=`root`@`localhost` PROCEDURE `mi_procedimiento`(IN mi_variable VARCHAR(15)) A continuación sigue código en Visual Basic .NET Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Eso es totototo totototodddo amigos. Espero que resulte muy útil para todo el mundo y nos ayude a crear amistad entre MySQL y .NET, que no todo fue un camino de rosas (hasta antes de MySQL Connector al menos). Y como decía un maestro: ahora, de ejercicio, hacerlo para C#, C++, etc. ;-) Espacios de nombres usados en el código de este artículo:MySql.Data.MySqlClient (de la libreria MySQLConnector) |
Código de ejemplo (comprimido): |
No hay, así de simple
|