CLR: .Net / Mono / Boo / Otros CLR > C#
Ejecutar Procedimientos Almacenados Con C#
(1/1)
pino79:
Buenas, tengo un problema al conectar con la BD mediante las clases de ODBC que proporciona C# para ello.
Estoy intentando ejecutar un procedimiento almacenado al cual le tengo que pasar un parametro. El código que estoy ejecutando ahora es el siguiente:
--- Código: Text --- OdbcCommand comando = new OdbcCommand(); comando.CommandType = CommandType.StoredProcedure; comando.CommandText = "Listado_Paises"; comando.Connection = listaPaises.Conexion; comando.Parameters.Add("@tipo", OdbcType.Int); comando.Parameters["@tipo"].Value = 1; odbcLector = comando.ExecuteReader(); Según me han comentado es mejor utilizar las clases SqlConnection, pero el problema viene a que tengo que instalar una ODBC para conectar con la BD por si cambiara de ubicación.
El fallo me da cuando hago el ExecuteReader que me da un error 42000 que el proc. almacenado esperaba un parametro @tipo, y no se por que no lo pilla bien.
Si alguien sabe como solucionarlo lo agradecería.
sergiotarrillo:
pero si la BD cambia de ubicación, no te sirve sólo cambiar la cadena de conexión?
Saludos,
pino79:
Pero para cambiar la cadena de conexión debo recompilar el programa, y redistribuirlo a todos los usuarios.
De la otra forma solo tengo q cambiar en los clientes el servidor de la ODBC.
De todas formas el problema es otro, y es que en la comunicación con el procedimiento almacenado de la BD no me pasa bien los parametros.
sergiotarrillo:
Holas Pino79!
Pues lo que puedes hacer es agragar un archivo de Configuración, agregar tu cadena de conexión ,ahí y leerlo usando la clase ConfigurationManager.
Ventajas de una archivo de Configuración(app.config Windows, y web.config Web), que es un archivo que acompaña al ejecutable y puedes cambiar la cadena de conexión una vez compilado el programa, y con esto NO ES necesario recompilar el programa sólo editas el archivo app.config con el notepad y vuala!, sin nada de recompilación, también puedes agregar configuraciónes globales en ese archivo.
Ahora si, no tienes excusa para usar un SqlConnection, y explotar toda la funcionalidad de System.Data.SqlClient, que tiene para SQL.
Te recomiendo leer sobre el Data Access Application Block.
Y también puedes leer este link, para algunas recomendaciones cuando usas archivos de configuración.
Saludos,
Navegación
Ir a la versión completa