私のアプリケーションにExcelからインポートしようとしていますが、asp.net mvcを使用して保存しようとしています私は、このエラー'System.Collections.Generic.List <BPP.BPPCCSPCollabCacService.CAC>'から 'BPPCCSPCollabCacService.CAC []'に変換できません
Cannot Convert from 'List' to 'T[]'
ICacService
public interface ICacService
{
[OperationContract]
[ApplyDataContractResolver]
CheckResult CheckCacImportData(string fileName, List<CAC> importCacData);
[OperationContract]
[ApplyDataContractResolver]
void SaveCacImportData(IEnumerable<CAC> importCacData);
}
CacService
を得ました210public class CacService : ICacService
{
public CheckResult CheckCacImportData(string fileName, List<CAC> importCacData)
{
var result = new CheckResult();
var targetFile = new FileInfo(fileName);
if (!targetFile.Exists)
{
result.ID = Guid.NewGuid();
result.Success = false;
result.ErrorCount = 0;
result.ErrorMessage = "Data Import Error!";
return result;
}
var excelFile = new ExcelQueryFactory(fileName);
//
//excelFile.AddMapping<CAC>(x => x.ID, "ID");
excelFile.AddMapping<CAC>(x => x.RC_NUMBER, "RC Number");
excelFile.AddMapping<CAC>(x => x.COMPANY_NAME, "Company Name");
excelFile.AddMapping<CAC>(x => x.OWNERSHIP_STRUCTURE, "Ownership Structure");
excelFile.AddMapping<CAC>(x => x.ADDRESS_STREET, "Street");
excelFile.AddMapping<CAC>(x => x.ADDRESS_CITY, "City");
excelFile.AddMapping<CAC>(x => x.ADDRESS_STATE, "State");
excelFile.AddMapping<CAC>(x => x.ADDRESS_PMB, "PMB");
excelFile.AddMapping<CAC>(x => x.ADDRESS_POBOX, "PO Box");
excelFile.AddMapping<CAC>(x => x.ADDRESS_LGA, "LGA");
excelFile.AddMapping<CAC>(x => x.DATE_OF_REGISTRATION, "Registration Date");
//SheetName
var excelContent = excelFile.Worksheet<CAC>("List of CAC");
int errorCount = 0;
int rowIndex = 1;
var importErrorMessages = new List<string>();
//
foreach (var row in excelContent)
{
var errorMessage = new StringBuilder();
var cacRecord = new CAC();
// cacRecord.ID = row.ID;
cacRecord.ADDRESS_STREET = row.ADDRESS_STREET;
cacRecord.ADDRESS_CITY = row.ADDRESS_CITY;
cacRecord.ADDRESS_STATE = row.ADDRESS_STATE;
cacRecord.ADDRESS_PMB = row.ADDRESS_PMB;
cacRecord.ADDRESS_POBOX = row.ADDRESS_POBOX;
cacRecord.ADDRESS_LGA = row.ADDRESS_LGA;
cacRecord.DATE_OF_REGISTRATION = row.DATE_OF_REGISTRATION;
cacRecord.ACTION_STATUS = 1;
cacRecord.CREATED_DATE = DateTime.Now;
//RC Number
if (string.IsNullOrWhiteSpace(row.RC_NUMBER))
{
errorMessage.Append("RC - Cannot be Blank. ");
}
cacRecord.RC_NUMBER = row.RC_NUMBER;
//Company Name
if (string.IsNullOrWhiteSpace(row.COMPANY_NAME))
{
errorMessage.Append("Company Name - Cannot be Blank. ");
}
cacRecord.COMPANY_NAME = row.COMPANY_NAME;
//Ownership Structure
if (string.IsNullOrWhiteSpace(row.OWNERSHIP_STRUCTURE))
{
errorMessage.Append("Ownership Structure - Cannot be Blank. ");
}
cacRecord.OWNERSHIP_STRUCTURE = row.OWNERSHIP_STRUCTURE;
//=============================================================================
if (errorMessage.Length > 0)
{
errorCount += 1;
importErrorMessages.Add(string.Format(
"Error {0} Windows cannot access this device:{1}{2}",
rowIndex,
errorMessage,
"<br/>"));
}
importCacData.Add(cacRecord);
rowIndex += 1;
}
try
{
result.ID = Guid.NewGuid();
result.Success = errorCount.Equals(0);
result.RowCount = importCacData.Count;
result.ErrorCount = errorCount;
string allErrorMessage = string.Empty;
foreach (var message in importErrorMessages)
{
allErrorMessage += message;
}
result.ErrorMessage = allErrorMessage;
return result;
}
catch (Exception ex)
{
throw;
}
}
/// Saves the import data.
public void SaveCacImportData(IEnumerable<CAC> importCacData)
{
try
{
//Add or Remove
using (var db = new COLLABEntities())
{
foreach (var item in db.CAC.OrderBy(x => x.CAC_ID))
{
db.CAC.Remove(item);
}
db.SaveChanges();
}
//Save and Comit file
using (var db = new COLLABEntities())
{
foreach (var item in importCacData)
{
db.CAC.Add(item);
}
db.SaveChanges();
}
}
catch (Exception ex)
{
throw;
}
}
}
コントローラ
[HttpPost]
public ActionResult Import(string savedFileName)
{
var jo = new JObject();
string result;
try
{
var fileName = string.Concat(Server.MapPath(fileSavedPath), "/", savedFileName);
var importCacData = new List<CAC>();
//var helper = new ImportDataHelper();
var helper = new CacServiceClient();
var checkResult = helper.CheckCacImportData(fileName, importCacData);
jo.Add("Result", checkResult.Success);
jo.Add("Msg", checkResult.Success ? string.Empty : checkResult.ErrorMessage);
if (checkResult.Success)
{
helper.SaveCacImportData(importCacData);
}
result = JsonConvert.SerializeObject(jo);
}
catch (Exception ex)
{
throw;
}
return Content(result, "application/json");
}
親切に助けてください。どこが間違っているのですか?var helper = new CacServiceClient();を使用して、私のコントローラからサービスを呼び出そうとしました。しかし、私は図でエラーが発生しました。
関連コードのみが必要です。これは、エラーが発生した場所とおそらくクラスです。 –
投稿者:Public CheckResult宛先:publicリスト –
jdweng