Foros del Web » Programación para mayores de 30 ;) » .NET »

Ejecutar Porcedimiento almacenado desde C#

Estas en el tema de Ejecutar Porcedimiento almacenado desde C# en el foro de .NET en Foros del Web. hola a todos, espero me puedan ayudar tengo un procedimiento almacenado en una base de datos SYBASE, este procedimiento lo ejecuto a través de un ...
  #1 (permalink)  
Antiguo 12/09/2013, 09:14
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 15 años, 10 meses
Puntos: 3
Pregunta Ejecutar Porcedimiento almacenado desde C#

hola a todos, espero me puedan ayudar tengo un procedimiento almacenado en una base de datos SYBASE, este procedimiento lo ejecuto a través de un código en C# para una aplicación de consola y el resultado lo exporto a una archivo.CSV esto sin problemas, lo que necesito ahora es poder ejecutar mas de una vez ese procedimiento y el resultado poder ponerlo es un solo archivo.CSV, no se si me explico bien, bueno tratare de poner un ejemplo: tengo un listado como el siguientes con nombres de equipos:

ID|nombre_equipo
1 |BBL52E_02
2 |OSO52E_04

por cada uno de esos equipos necesito ejecutar el procedimiento almacenado 3 veces, para poder traer 2 datos correspondientes a cada equipo y el resultado exportarlo a un archivo.CSV. estos serian los procedimientos que debería ejecutar por ejemplo para el equipo numero uno (BBL52E_02).

exec sp_trendView @tablename='collect', @tagname='analog.BBL52E_02_____P.curval', @columnname='value' , @starttime='01/09/2013 00:00:00', @endtime= '01/09/2013 23:59:00'

exec sp_trendView @tablename='collect', @tagname='analog.BBL52E_02_____Q.curval', @columnname='value' , @starttime='01/09/2013 00:00:00', @endtime= '01/09/2013 23:59:00'

exec sp_trendView @tablename='collect', @tagname='analog.BBL52E_02_____S.curval', @columnname='value' , @starttime='01/09/2013 00:00:00', @endtime= '01/09/2013 23:59:00'

si se fijan lo único que cambia en cada ejecución del procedimiento es el campo llamado "tagname".

este es mi código donde solo ejecuto una ves el procedimiento:
Código c#:
Ver original
  1. using System;
  2. using System.Data;
  3. using System.Data.Odbc;
  4. using MySql.Data.MySqlClient;
  5. using System.IO;
  6.  
  7.  
  8.            
  9.  
  10. namespace TestODBC
  11. {
  12.     class Program
  13.     {
  14.         static void Main(string[] args)
  15.         {
  16.             MostrarDatos();
  17.             Console.ReadLine();
  18.             DateTime Hoy = DateTime.Today;
  19.  
  20.         }
  21.  
  22.         private static void MostrarDatos()
  23.         {
  24.  
  25.             string strFilePath = @"C:\ datas.csv";        
  26.             using (OdbcConnection oCn = new OdbcConnection("Driver={Sybase System 10};SRVR=CMX;DB=timeline;DSN=Default;UID=xisapp;PWD=apphistory;"))
  27.             {
  28.                 try
  29.                 {
  30.                     string proc = String.Format("exec sp_trendView @tablename='{0}', @tagname='{1}', @columnname='{2}', @starttime='{3}', @endtime= '{4}'",
  31.                                                "collect", "analog.BBL52B_02_____P.curval", "value", "01/09/2013 00:00:00", "01/09/2013 23:59:00");
  32.                                    
  33.                     OdbcCommand oCmd = new OdbcCommand(proc,oCn);
  34.                     DataTable rows = new DataTable("datos");
  35.                     OdbcDataAdapter oDt = new OdbcDataAdapter(oCmd);
  36.                    oCn.Open();
  37.  
  38.                     try
  39.                     {
  40.                         oDt.Fill(rows);
  41.                         StreamWriter sw = new StreamWriter(strFilePath, false);
  42.                         int iColCount = rows.Columns.Count;
  43.                         sw.Write("Alimentador");
  44.                         sw.Write(",");
  45.                         sw.Write("Fecha");
  46.                         sw.Write(",");
  47.                         sw.Write("P");
  48.                         sw.Write(",");
  49.                         sw.Write("Q");
  50.                         sw.Write(",");
  51.                         sw.Write("S");
  52.                         sw.Write(sw.NewLine);
  53.                        foreach (DataRow row in rows.Rows)
  54.                             {  
  55.                            
  56.                                         sw.Write("BBL52B_02".ToString());
  57.                                         sw.Write(",");            
  58.                                         sw.Write(row[0].ToString());
  59.                                         sw.Write(",");
  60.                                         sw.Write(row[2].ToString());
  61.                                         sw.Write(sw.NewLine);
  62.                                    
  63.                            }
  64.                        
  65.                            sw.Close();
  66.                             Console.WriteLine("Proceso Finalizado");
  67.                       }
  68.                        
  69.                     catch (Exception ex)
  70.                     {
  71.                         Console.WriteLine(String.Format("Error al consultar procedimiento : {0}", ex.Message));
  72.                     }
  73.                 }
  74.                 catch (Exception ex)
  75.                 {
  76.                     Console.WriteLine(ex.Message);
  77.                 }
  78.             }
  79.         }
  80.     }
  81. }
espero me puedan ayudar!!!

Etiquetas: almacenado, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:59.