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

Error Error 1: not all code paths return a value

Estas en el tema de Error Error 1: not all code paths return a value en el foro de .NET en Foros del Web. Buenas....!!!! Espero me puedan ayudar con el siguiente error que tengo: Error 1 'WS_SSO.WSPacientes.ProcesarPacientes(string)': not all code paths return a value Estoy empezando a programar ...
  #1 (permalink)  
Antiguo 06/03/2014, 14:27
 
Fecha de Ingreso: marzo-2014
Mensajes: 1
Antigüedad: 7 años, 6 meses
Puntos: 0
Pregunta Error Error 1: not all code paths return a value

Buenas....!!!!

Espero me puedan ayudar con el siguiente error que tengo:

Error 1 'WS_SSO.WSPacientes.ProcesarPacientes(string)': not all code paths return a value

Estoy empezando a programar en VisualStudio y en especial C# y debo hacer un WebService, que permita la inserción y/o actualización de la tabla(Pacientes) de Mi Aplicación, pero que se recibe los datos para esta tarea en un archivo XML de otra aplicación ajena a la mía....!!

Dejo el código que logre generar y les agradecería me ayuden corrigiendo las partes que estén erróneas.

Saludos Cordiales



Código:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
using System.Data.Common;
using System.Xml;
using System.IO;
using System.Text;
using System.Drawing;
using Microsoft.Practices.EnterpriseLibrary.Common;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Data.Sql;
using System.Data.SqlClient;
using System.Configuration;


namespace WS_SSO
{
/// <summary>
/// Descripción breve de WSPacientes:
/// WebServices que permite recibir un archivo xml, leer su información y seguidamente insertar en la tabla Pacientes en el caso de
/// ser nuevos registros y/o actualizar los existentes...!!!
/// </summary>

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// Para permitir que se llame a este servicio web desde un script, usando ASP.NET AJAX, quite la marca de comentario de la línea siguiente.
// [System.Web.Script.Services.ScriptService]
public class WSPacientes : System.Web.Services.WebService
{
//Metodo para insertar y/o actualizar datos en tabla dbo.ProcesarPacientes
[WebMethod]

public string ProcesarPacientes(string xmldataPacientes)
{

try
{
/// DECODIFICAR XML

// Variable para decodificar archivo recibido en XML, utilizando el procedimiento HttpContext.Current.Server.HtmlDecode
string xmldataPacientesDecodificado = HttpContext.Current.Server.HtmlDecode(xmldataPacie ntes);

/// LEER DATOS ARCHIVO XML
// Creación de arreglo tipo byte[] a partir de la variable con los datos decodificados
byte[] xmldataPacientesDecodificadoArray = Encoding.ASCII.GetBytes(xmldataPacientesDecodifica do);
MemoryStream ms = new MemoryStream(xmldataPacientesDecodificadoArray);

// Creación de DataSet para almacenar los datos decodificados del archivo XML
DataSet xmlData = new DataSet();
xmlData.ReadXml(ms);

///PROCESAR DATOS ARCHIVO XML

// Conexión a Base de Datos
Database db = DatabaseFactory.CreateDatabase("SoadSuperAdministr ador");
DbCommand cmd = db.GetStoredProcCommand("dbo.ProcesarPacientes");

// Creación de objeto DataTable para conocer el número total de registros.
DataTable Tabla = new DataTable();
int nreg = Tabla.Rows.Count;
int i = 0;

//Bucle para insertar las nuevas tuplas.
for ( i = 0; i <= nreg; i++)
{

db.AddInParameter(cmd, "@NUMERO_DOCUMENTO_PACIENTE", DbType.String, xmlData.Tables["Tabla"].Rows[i]["NUMERO_DOCUMENTO_PACIENTE"].ToString());
db.AddInParameter(cmd, "@UBI_ID", DbType.String, xmlData.Tables["Tabla"].Rows[i]["UBI_ID"].ToString());
db.AddInParameter(cmd, "@ACTIVO_ID ", DbType.String, xmlData.Tables["Tabla"].Rows[i]["ACTIVO_ID"].ToString());
db.AddInParameter(cmd, "@DISC_ID", DbType.String, xmlData.Tables["Tabla"].Rows[i]["DISC_ID"].ToString());
db.AddInParameter(cmd, "@CODIGO_ESTADO_CIVIL", DbType.String, xmlData.Tables["Tabla"].Rows[i]["CODIGO_ESTADO_CIVIL"].ToString());
db.AddInParameter(cmd, "@INST_ID", DbType.String, xmlData.Tables["Tabla"].Rows[i]["INST_ID"].ToString());
db.AddInParameter(cmd, "@SUCURSAL_ID", DbType.String, xmlData.Tables["Tabla"].Rows[i]["SUCURSAL_ID"].ToString());
db.AddInParameter(cmd, "@PAIS_ID", DbType.String, xmlData.Tables["Tabla"].Rows[i]["PAIS_ID"].ToString());
db.AddInParameter(cmd, "@COSTO_ID", DbType.String, xmlData.Tables["Tabla"].Rows[i]["COSTO_ID"].ToString());
db.AddInParameter(cmd, "@CODIGO_SEXO", DbType.String, xmlData.Tables["Tabla"].Rows[i]["CODIGO_SEXO"].ToString());
db.AddInParameter(cmd, "@CODIGO_GRUPO_SANGUINEO", DbType.String, xmlData.Tables["Tabla"].Rows[i]["CODIGO_GRUPO_SANGUINEO"].ToString());
db.AddInParameter(cmd, "@USR_ID", DbType.String, xmlData.Tables["Tabla"].Rows[i]["USR_ID"].ToString());
db.AddInParameter(cmd, "@CODIGO_TIPO_DOCUMENTO", DbType.String, xmlData.Tables["Tabla"].Rows[i]["UBI_ID"].ToString());
db.AddInParameter(cmd, "@CODIGO_GRUPO_ETNICO", DbType.String, xmlData.Tables["Tabla"].Rows[i]["UBI_ID"].ToString());
db.AddInParameter(cmd, "@SSO_UBI_ID", DbType.String, xmlData.Tables["Tabla"].Rows[i]["UBI_ID"].ToString());
db.AddInParameter(cmd, "@ID_REL", DbType.String, xmlData.Tables["Tabla"].Rows[i]["ID_REL"].ToString());
db.AddInParameter(cmd, "@CODIGO_OCUPACION", DbType.String, xmlData.Tables["Tabla"].Rows[i]["CODIGO_OCUPACION"].ToString());
db.AddInParameter(cmd, "@FECHA_INSCRIPCION_PACIENTE", DbType.String, xmlData.Tables["Tabla"].Rows[i]["FECHA_INSCRIPCION_PACIENTE"].ToString());
db.AddInParameter(cmd, "@PRIMER_APELLIDO_PACIENTE", DbType.String, xmlData.Tables["Tabla"].Rows[i]["PRIMER_APELLIDO_PACIENTE"].ToString());
db.AddInParameter(cmd, "@SEGUNDO_APELLIDO_PACIENTE", DbType.String, xmlData.Tables["Tabla"].Rows[i]["SEGUNDO_APELLIDO_PACIENTE"].ToString());
db.AddInParameter(cmd, "@PRIMER_NOMBRE_PACIENTE", DbType.String, xmlData.Tables["Tabla"].Rows[i]["PRIMER_NOMBRE_PACIENTE"].ToString());
db.AddInParameter(cmd, "@SEGUNDO_NOMBRE_PACIENTE", DbType.String, xmlData.Tables["Tabla"].Rows[i]["SEGUNDO_NOMBRE_PACIENTE"].ToString());
db.AddInParameter(cmd, "@FECHA_NACIMIENTO_PACIENTE", DbType.String, xmlData.Tables["Tabla"].Rows[i]["FECHA_NACIMIENTO_PACIENTE"].ToString());
db.AddInParameter(cmd, "@EDAD", DbType.String, xmlData.Tables["Tabla"].Rows[i]["EDAD"].ToString());
db.AddInParameter(cmd, "@HIJOS_PACIENTE", DbType.String, xmlData.Tables["Tabla"].Rows[i]["HIJOS_PACIENTE"].ToString());
db.AddInParameter(cmd, "@DISCAPACIDAD_PORCENTAJE", DbType.String, xmlData.Tables["Tabla"].Rows[i]["DISCAPACIDAD_PORCENTAJE"].ToString());
db.AddInParameter(cmd, "@EMERGENCIA_CELULAR", DbType.String, xmlData.Tables["Tabla"].Rows[i]["EMERGENCIA_CELULAR"].ToString());
db.AddInParameter(cmd, "@TELEFONO_PACIENTE", DbType.String, xmlData.Tables["Tabla"].Rows[i]["TELEFONO_PACIENTE"].ToString());
db.AddInParameter(cmd, "@CONTACTO_EMERGENCIA", DbType.String, xmlData.Tables["Tabla"].Rows[i]["CONTACTO_EMERGENCIA"].ToString());
db.AddInParameter(cmd, "@EMAIL_PACIENTE", DbType.String, xmlData.Tables["Tabla"].Rows[i]["EMAIL_PACIENTE"].ToString());
db.AddInParameter(cmd, "@MOVIL_PACIENTE", DbType.String, xmlData.Tables["Tabla"].Rows[i]["MOVIL_PACIENTE"].ToString());
db.AddInParameter(cmd, "@DIRECCION_RESIDENCIA_PACIENTE", DbType.String, xmlData.Tables["Tabla"].Rows[i]["DIRECCION_RESIDENCIA_PACIENTE"].ToString());
//db.AddInParameter(cmd, "@FOTO_PACIENTE", DbType.Image, xmlData.Tables["Tabla"].Rows[i]["FOTO_PACIENTE"].ToString());
db.AddInParameter(cmd, "@OBSERVACION", DbType.String, xmlData.Tables["Tabla"].Rows[i]["OBSERVACION"].ToString());
db.AddInParameter(cmd, "@OPERACION", DbType.String, "AC");
db.AddOutParameter(cmd, "@outMensaje", DbType.String, 200);
db.AddOutParameter(cmd, "@outID", DbType.Int32, 10);

//DataSet dsResultado;
//dsResultado = db.ExecuteDataSet(cmd);
//string xmlTemp = dsResultado.GetXml();

//dsResultado.Tables[0].Rows[0]["NUMERO_DOCUMENTO_PACIENTE"].ToString();
db.ExecuteNonQuery(cmd);

string resultado = db.GetParameterValue(cmd, "@outMensaje").ToString();


if (resultado.IndexOf("ERROR") != -1)
{
throw new Exception("Se produjo un error al insertar un paciente: " + resultado);
}

return "Ingreso de Datos Listo";

}
}

catch (Exception ex)
{
return ex.Message;
}
}

}
}
  #2 (permalink)  
Antiguo 09/03/2014, 12:52
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 15 años, 1 mes
Puntos: 22
Respuesta: Error Error 1: not all code paths return a value

Hola, al tipar un métdo, c# te obliga a que devuelvas un valor sin importar qué pase.

En realidad el problema es que el return te quedó dentro del for (revisa las llaves), por lo que en caso de que nreg sea 0 nunca ingresará al for y no pasará por ningún return.

Además eso posiblemente sea un inconveniente ya que saldrá del método tras insertar el primer registro.

Saludos.

Etiquetas: c#, visualstudio
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 04:08.