LINQ: прочитать файл Excel и затем записать в базу данных - PullRequest
0 голосов
/ 23 мая 2011

Я беру строки из файла Excel, используя LinqToExcel, а затем пишу в SQLServer, используя LINQToSQL.Он создал записи в базе данных, но с нулевыми значениями.Интересно, нужно ли мне сопоставить объект Mac (linqtoexcel) с объектом HSD_TELE_INSTALLs?Я не думаю, что я слишком далеко, так как он вставил записи.Соответствующий код ниже.Заранее спасибо.

        //LINQ
        var macs = from x in excel.Worksheet<Mac>(sheet)
                   select x;
        //ITERATE WITH LINQ RESULTS
        foreach (var x in macs)
        {
            HSD_TELE_INSTALL myRecord = new HSD_TELE_INSTALL();
            db.HSD_TELE_INSTALLs.InsertOnSubmit(myRecord);
            db.SubmitChanges();
        }

    public class Mac
    {
        public string REGION { get; set; }
        public string MACID { get; set; }
        public string HOUSEKEY { get; set; }
        public string HOUSENUM { get; set; }
        public string STREET { get; set; }
        public string UNIT { get; set; }
        public string ADDRESS2 { get; set; }
        public string COMMUNITY { get; set; }
        public string STATE { get; set; }
        public string ZIPCODE { get; set; }
        public string TECHNICIAN { get; set; }
        public string JOBNO { get; set; }
        public string JOBTYPE { get; set; }
        public string CLOSEDATE { get; set; }
        public string CLOSETIME { get; set; }
        public string COMMENTS { get; set; }
        public string MGT { get; set; }
        public string COMPLETIONCODE { get; set; }
        public string TCRSN { get; set; }

1 Ответ

1 голос
/ 24 мая 2011

Вы создаете новый неинициализированный объект типа HSD_TELE_INSTALL, а затем отправляете его в БД.

Вы должны как-то инициализировать его с x. Что-то вроде:

HSD_TELE_INSTALL myRecord = new HSD_TELE_INSTALL(){SomeField=x.SomeField /*etc...*/ };
db.HSD_TELE_INSTALLs.InsertOnSubmit(myRecord);
db.SubmitChanges();
...