Search code examples
c#asp.netmodel-view-controllerepplus

Error CS7036, no formal arguments in existing variables - ASP.NET C# - MVC


I created a solution where the user uploads an excel to a db table named TMP_BEN_DCT through a button on a ASP.NET page using EPPLUS libraries, the code and the db are stored correctly and called on their corresponding classes but I keep gettin a CS7036 on the variables that come from excel file (as soon as I delete one the error shows up on another one):

CS7036 No se ha dado ningún argumento que corresponda al parámetro formal requerido 'eTIP_CON' de 'importarController.guardarRegistro(string, string, string, string, string, string, string, benDBEntities)' bulkBeneficios

The following .cs is the entire method to upload:

using OfficeOpenXml;
using System;
using System.Linq;
using System.Web.Mvc;
using bulkBeneficios.Data;

namespace bulkBeneficios.Controllers
{
public class importarController : Controller
{
    // GET: importar
    public ActionResult Index()
    {
        return View("");
    }

    [HttpPost]
    public ActionResult index()
    {
        String mensaje = string.Empty;
        int count = 0;
        importarDatos(out count);
        return View(mensaje);
    }

    private bool importarDatos(out int count)
    {
        var resultado = false;
        int contador = 0;
        count = 0;
        try
        {
            string rutaArchivo = Server.MapPath("/") + "\\importarTest\\";
            var paquete = new ExcelPackage(new System.IO.FileInfo(rutaArchivo));
            int inicioColumna = 1; //Si el excel contiene encabezados o filas vacías al inicio
            int inicioFila = 2; //Al tener encabezados la plantilla se inicia desde fila 2
            ExcelWorksheet planillaTrabajo = paquete.Workbook.Worksheets[1];
            object datos = null;

            TMP_CAR_DCT_BEN db = new TMP_CAR_DCT_BEN(); //ENTIDAD DE TABLA
            benDBEntities db2 = new benDBEntities(); //DB ENTIDAD

            do
            {
                datos = planillaTrabajo.Cells[inicioColumna, inicioFila].Value;

                //leer datos
                //ID_USU_CAR RUT_DCT TIP_CON ID_CON  INI_BEN FIN_BEN MON_CLP

                object eID_USU_CAR = planillaTrabajo.Cells[inicioColumna, inicioFila].Value;
                object eRUT_DCT = planillaTrabajo.Cells[inicioColumna + 1, inicioFila].Value;
                object eTIP_CON = planillaTrabajo.Cells[inicioColumna + 2, inicioFila].Value;
                object eID_CON = planillaTrabajo.Cells[inicioColumna + 3, inicioFila].Value;
                object eINI_BEN = planillaTrabajo.Cells[inicioColumna + 5, inicioFila].Value;
                object eFIN_BEN = planillaTrabajo.Cells[inicioColumna + 6, inicioFila].Value;
                object eMON_CLP = planillaTrabajo.Cells[inicioColumna + 7, inicioFila].Value;


                if (datos != null & eID_USU_CAR != null & eRUT_DCT != null & eTIP_CON != null & eID_CON != null & eINI_BEN != null & eFIN_BEN != null & eMON_CLP != null)
                {
                    //importarDB
                    var esValidoCol1 = guardarRegistro(eID_USU_CAR.ToString(), db2); //CS7036
                    var esValidoCol2 = guardarRegistro(eRUT_DCT.ToString(), db2); //CS7036
                    var esValidoCol3 = guardarRegistro(eTIP_CON.ToString(), db2); //CS7036
                    var esValidoCol4 = guardarRegistro(eID_CON.ToString(), db2); //CS7036
                    var esValidoCol5 = guardarRegistro(eINI_BEN.ToString(), db2); //CS7036
                    var esValidoCol6 = guardarRegistro(eFIN_BEN.ToString(), db2); //CS7036
                    var esValidoCol7 = guardarRegistro(eMON_CLP.ToString(), db2); //CS7036

                    if (esValidoCol1)
                    {
                        count++;
                    }
                }
                inicioFila++;
            }
            while (datos == null);
        }
        catch (Exception ex)
        {

        }
        return resultado;
    }

    public bool guardarRegistro(String eID_USU_CAR, String eRUT_DCT, String eTIP_CON, String eID_CON, String eINI_BEN, String eFIN_BEN, String eMON_CLP, benDBEntities db2)
    {
        var resultado = false;
        try
        {

            //if (db2.ID_USU_CAR.Where(t => t.ID_USU_CAR.Equals(ID_USU_CAR)).Count() == 0)
            //{


            var item1 = new TMP_CAR_DCT_BEN();
            item1.ID_USU_CAR = eID_USU_CAR;
            db2.TMP_CAR_DCT_BEN.Add(item1);
            db2.SaveChanges();


            var item2 = new TMP_CAR_DCT_BEN();
            item2.TIP_CON = eTIP_CON;
            db2.TMP_CAR_DCT_BEN.Add(item2);
            db2.SaveChanges();
            //}
        }
        catch (Exception ex)
        {

        }
        return resultado;
    }
}
}

Solution

  • You defined eight parameters for your method guardarRegistro but you are trying invoke it with only two ? you either have to refactor your method for two arguments

    public bool guardarRegistro(string argument1,benDBEntities db2)
    {
    //Do your stuffs
    }
    

    or invoke using eight parameters

    var esValidoCol1 = guardarRegistro(argument1,2,3 ... ,8);