错误 CS7036,现有变量中没有形式参数 - ASP.NET C# - MVC
Error CS7036, no formal arguments in existing variables - ASP.NET C# - MVC
我创建了一个解决方案,其中用户使用 EPPLUS 库通过 ASP.NET 页面上的按钮将 excel 上传到名为 TMP_BEN_DCT 的数据库 table,代码并且数据库被正确存储并在其相应的 类 上调用,但我一直在获取来自 excel 文件的变量的 CS7036(一旦我删除一个,错误就会出现在另一个上):
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
下面的.cs是上传的完整方法:
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;
}
}
}
您为方法 guardarRegistro 定义了八个参数,但您试图仅用两个来调用它?你要么必须为两个参数重构你的方法
public bool guardarRegistro(string argument1,benDBEntities db2)
{
//Do your stuffs
}
或使用八个参数调用
var esValidoCol1 = guardarRegistro(argument1,2,3 ... ,8);
我创建了一个解决方案,其中用户使用 EPPLUS 库通过 ASP.NET 页面上的按钮将 excel 上传到名为 TMP_BEN_DCT 的数据库 table,代码并且数据库被正确存储并在其相应的 类 上调用,但我一直在获取来自 excel 文件的变量的 CS7036(一旦我删除一个,错误就会出现在另一个上):
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
下面的.cs是上传的完整方法:
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;
}
}
}
您为方法 guardarRegistro 定义了八个参数,但您试图仅用两个来调用它?你要么必须为两个参数重构你的方法
public bool guardarRegistro(string argument1,benDBEntities db2)
{
//Do your stuffs
}
或使用八个参数调用
var esValidoCol1 = guardarRegistro(argument1,2,3 ... ,8);