При импорте данных из Excel в контроллер, как проверить, существует ли конкретный столбец в файле Excel или нет? - PullRequest
0 голосов
/ 31 мая 2018

Я добавляю данные в свою таблицу базы данных через функцию контроллера, которая успешно добавляет данные.Проблема заключается в том, что мне нужно добавить данные из двух разных файлов Excel, которые содержат одинаковые столбцы, кроме одного столбца, поэтому при добавлении данных я хочу поставить некоторую проверку в контроллере при чтении из файла Excel, чтобы узнать, существует ли определенный файл в файле Excel или нет?Вот мой метод контроллера, который работает нормально для остальных столбцов:

using (ApplicationDbContext db = new ApplicationDbContext())
{
    db.Database.ExecuteSqlCommand("TRUNCATE TABLE COCoreMembers");
    DataAccess.DataTable abc = DataAccess.DataTable.New.ReadCsv(Server.MapPath("~/App_Data/TempBrdcepPSC/PscData/co_members.csv"));
    COCoreMember xyz = new COCoreMember();

    foreach (Row Row in abc.Rows)
    {
        xyz._URI = Row["_URI"];
        xyz._PARENT_AURI = Row["_PARENT_AURI"];
        xyz.HHID = Row["HHID"];
        xyz.HHNAME = Row["HHNAME"];
        xyz.HH_SET_ID = Row["HH_SET_ID"];
        xyz.HH_SET_NAME = Row["HH_SET_NAME"];
        xyz.MEM_ID = Row["MEM_ID"];
        xyz.MEM_NAME = Row["MEM_NAME"];
        xyz.MEMBER_AGE = Row["MEMBER_AGE"];
        xyz.POSITION = Row["POSITION"];
        xyz.CELL = Row["CELL"];
        if (Row["CNIC"].ToString() == xyz.CNIC)
        {
            xyz.CNIC = Row["CNIC"];
        }
        else
        {
            xyz.CNIC = "no record";
        }

        //xyz.CNIC = "CNIC";

        db.COCoreMembers.Add(xyz);
        db.SaveChanges();
    }
}

Я просто хочу проверить, что если в файле Excel существует столбец "CNIC", то введите его в таблицу для другого мудрого ввода "Нет записи "на свое место в таблице.

1 Ответ

0 голосов
/ 31 мая 2018

Попробуй вот так-

using (ApplicationDbContext db = new ApplicationDbContext())
{
    db.Database.ExecuteSqlCommand("TRUNCATE TABLE COCoreMembers");
    DataAccess.DataTable abc = DataAccess.DataTable.New.ReadCsv(Server.MapPath("~/App_Data/TempBrdcepPSC/PscData/co_members.csv"));
    bool checkColumn = false;
    if(abc.Columns.Contains("CNIC"))
    {
        checkColumn = true;
    }
    else
    {
        abc.Columns.Add("CNIC");
    }

    COCoreMember xyz = new COCoreMember();

    foreach (Row Row in abc.Rows)
    {
        xyz._URI = Row["_URI"];
        xyz._PARENT_AURI = Row["_PARENT_AURI"];
        xyz.HHID = Row["HHID"];
        xyz.HHNAME = Row["HHNAME"];
        xyz.HH_SET_ID = Row["HH_SET_ID"];
        xyz.HH_SET_NAME = Row["HH_SET_NAME"];
        xyz.MEM_ID = Row["MEM_ID"];
        xyz.MEM_NAME = Row["MEM_NAME"];
        xyz.MEMBER_AGE = Row["MEMBER_AGE"];
        xyz.POSITION = Row["POSITION"];
        xyz.CELL = Row["CELL"];

        if(checkColumn)
        {
            xyz.CNIC = Row["CNIC"];
        }
        else
        {
            xyz.CNIC = "no record";
        }

        db.COCoreMembers.Add(xyz);
        db.SaveChanges();
    }
}
...