コード例 #1
0
ファイル: ManejadorBaseDatos.cs プロジェクト: jaalvarez92/SIA
        /// <summary>
        /// Ejecuta un sp apartir de un objeto entity
        /// </summary>
        /// <param name="pSP">entity que contiene informacion del sp</param>
        /// <returns>entity con el resultado de la ejecución del sp</returns>
        public Entity EjecutarSPAux(Entity pSP, String pEsquema)
        {
            Entity resultado = new Entity();
            SqlConnection conexion;
            try
            {
                conexion = new SqlConnection(_ConnectionString);
                conexion.Open();
                String nombreSP = pEsquema+"."+(String)pSP.Get("SP");
                Entities parametros = (Entities)pSP.Get("Parametros");
                Boolean retornaDatos = (Boolean)pSP.Get("Retorna");

                SqlDataAdapter adapter = new SqlDataAdapter();

                SqlCommand sp = new SqlCommand();
                sp.Connection = conexion;
                sp.CommandType = System.Data.CommandType.StoredProcedure;
                sp.CommandText = nombreSP;

                foreach (Entity parametro in parametros)
                {
                    SqlParameter sqlParametro = new SqlParameter((String)parametro.Get("Nombre"), parametro.Get("Valor"));
                    if (sqlParametro.Value == null)
                    {
                        sqlParametro.Value = DBNull.Value;
                    }
                    if (((String)parametro.Get("Tipo")).Equals("Input"))
                    {
                        sqlParametro.Direction = System.Data.ParameterDirection.Input;
                    }
                    else if (((String)parametro.Get("Tipo")).Equals("Output"))
                    {
                        sqlParametro.Direction = System.Data.ParameterDirection.Output;
                    }
                    sp.Parameters.Add(sqlParametro);
                }

                if (retornaDatos)
                {
                    adapter.SelectCommand = sp;

                    DataSet dataset = new DataSet();
                    adapter.Fill(dataset);
                    foreach (DataTable table in dataset.Tables)
                    {
                        Entities result = new Entities();
                        foreach (DataRow row in table.Rows)
                        {
                            Entity fila = new Entity();
                            for (int i = 0; i < (row.ItemArray.Length); i++)
                            {
                                fila.Set(row.Table.Columns[i].ColumnName, row.ItemArray[i]);
                            }
                            result.Add(fila);
                        }
                        resultado.Set(table.TableName, result);
                    }

                }
                else
                {
                    sp.ExecuteNonQuery();
                }
                resultado.Set("Estado", true);
                resultado.Set("Error", "");
                conexion.Close();
            }
            catch (SqlException e)
            {
                resultado.Set("Estado", false);
                resultado.Set("Error", e.Message);
            }

            return resultado;
        }
コード例 #2
0
 public static void obtenerDocumentos(int pIndiceSocio, int p_2)
 {
     _Documentos = new Entities();
     int idSocio = 0;
     idSocio = (int)_ListaSocios.ElementAt(pIndiceSocio).Get("id");
     SqlDataReader lectorSQL;
     int cuenta;
     try
     {
         lectorSQL = AccesoDatosCV.obtenerDocumentos(idSocio);
         if (lectorSQL.HasRows)
         {
             banderaError = 0;
             while (lectorSQL.Read())
             {
                 cuenta = _Documentos.Count;
                 _Documentos.Add(new Entity());
                 _Documentos.ElementAt(cuenta).Set("id", lectorSQL.GetInt32(0));
                 _Documentos.ElementAt(cuenta).Set("numero", lectorSQL.GetInt32(1));
                 _Documentos.ElementAt(cuenta).Set("Fecha1", lectorSQL.GetDateTime(2));
                 _Documentos.ElementAt(cuenta).Set("Fecha2", lectorSQL.GetDateTime(3));
                 _Documentos.ElementAt(cuenta).Set("totalai", lectorSQL.GetDecimal(4));
                 _Documentos.ElementAt(cuenta).Set("impuestos", lectorSQL.GetDecimal(5));
                 _Documentos.ElementAt(cuenta).Set("total", lectorSQL.GetDecimal(6));
                 cuenta++;
             }
         }
         else
             banderaError = 1;
     }
     catch (Exception ex) { return; }
     return;
 }