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;
}
}
}
}