private void CopyToDataBaseFromControlCommuDetail(DataTable csvFileData) { cssControlCommunicationDetail vio = new cssControlCommunicationDetail(); List <cssControlCommunicationDetail> lstData = vio.DataTableToClass(csvFileData); var bulk = new BulkOperations(); // var VesselInfo = new List<VesselInfo>(); using (TransactionScope trans = new TransactionScope()) { using (SqlConnection conn = new SqlConnection(connectionString)) { bulk.Setup <cssControlCommunicationDetail>() .ForCollection(lstData) .WithTable("ControlCommunicationDetail") .AddAllColumns() .BulkInsertOrUpdate() .MatchTargetOn(x => x.prtAgNm) .MatchTargetOn(x => x.commCo) .MatchTargetOn(x => x.clsgn) .MatchTargetOn(x => x.cntrlSe) .MatchTargetOn(x => x.cntrlNm) .MatchTargetOn(x => x.cntrlOpertDt) .Commit(conn); } trans.Complete(); } }
} //부선2(이름) public List <cssControlCommunicationDetail> DataTableToClass(DataTable dt) { List <cssControlCommunicationDetail> lstData = new List <cssControlCommunicationDetail>(); if (dt == null) { return(lstData); } for (int i = 0; i < dt.Rows.Count; i++) { cssControlCommunicationDetail vio = new cssControlCommunicationDetail(); PropertyInfo[] props = vio.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); foreach (var property in props) { string colName = string.Empty; if (ControlCommunicationDetail.TryGetValue(property.Name, out colName)) { property.SetValue(vio, dt.Rows[i][colName].ToString()); } } lstData.Add(vio); } return(lstData); }