• Domingo 22 de Diciembre de 2024, 09:55

Autor Tema:  Ejecutar Procedimientos Almacenados Con C#  (Leído 2815 veces)

pino79

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Ejecutar Procedimientos Almacenados Con C#
« en: Domingo 4 de Marzo de 2007, 11:52 »
0
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
  1.  
  2.   OdbcCommand comando = new OdbcCommand();
  3.   comando.CommandType = CommandType.StoredProcedure;
  4.   comando.CommandText = "Listado_Paises";
  5.   comando.Connection = listaPaises.Conexion;
  6.   comando.Parameters.Add("@tipo", OdbcType.Int);
  7.   comando.Parameters["@tipo"].Value = 1;
  8.   odbcLector = comando.ExecuteReader();
  9.  
  10.  
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

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Ejecutar Procedimientos Almacenados Con C#
« Respuesta #1 en: Domingo 4 de Marzo de 2007, 13:56 »
0
pero si la BD cambia de ubicación, no te sirve sólo cambiar la cadena de conexión?

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

pino79

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Ejecutar Procedimientos Almacenados Con C#
« Respuesta #2 en: Lunes 5 de Marzo de 2007, 09:44 »
0
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

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Ejecutar Procedimientos Almacenados Con C#
« Respuesta #3 en: Lunes 5 de Marzo de 2007, 18:28 »
0
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,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!