본문 바로가기

C#27

개인적으로 자주 쓰는 LINQ 샘플 자주 사용하는 내용을 위주로 정리해 보았습니다. 상시 갱신 예정. 1. LINQ로 간단히 데이터를 추출할 경우 Model Sample Model // List testList = new List(); public class TestModel { public int Id { get; set; } public string Name { get; set; } public int Quantity { get; set; } public decimal Price { get; set; } public string Remarks { get; set; } } // List testSubList = new List(); public class TestSubModel { public int Id { get; set; } pub.. 2019. 1. 23.
CSV 파일 작성 public byte[] GetCsv() { var stream = new MemoryStream(); var csvWriter = new StreamWriter(stream, Encoding.GetEncoding("shift-jis")); csvWriter.WriteLine(String.Format("{0},{1},{2},{3}", "aaa", "bbb", "ccc", "ddd")); csvWriter.Flush(); return stream.ToArray(); } 원글 작성일 2017-01-10 2019. 1. 23.
메일 수신과 삭제 with OpenPoP.NET Open Pop.NET http://hpop.sourceforge.net/ OpenPop.NET은 C#으로 이메일을 제어 가능한 라이브러리입니다. 아래는 OpenPop.NET을 이용해서 메일의 수신과 삭제를 실행하는 부분을 정리한 내용입니다. 메일 수신과 삭제 기능의 호출 부분 using (Pop3Client pop3Client = GetPop3Client()) { var pop3 = new Pop3Mail(); List receivedMailList = pop3.ReceiveMails(pop3Client); pop3.DeleteMessageByMessageId(client, 1); // MessageId } Pop3Client생성 public static Pop3Client GetPop3Client().. 2019. 1. 21.
Entity Framework에서 tinyint(1)를 sbyte로 인식 시키고 싶을 경우의 해결 방법 1. config 파일을 수정 Web.config 또는 App.config의 에 “TreatTinyAsBoolean=false”를 추가합니다. 2. DB의 edmx 파일을 수정 SSDL content 부분의 bool를 tinyint로 수정합니다. 그리고 CSDL content 부분의 Boolean을 SByte로 수정합니다. 현재(2016.12) Web.config의 설정만으로 edmx가 자동으로 대응해 주는 방법은 없어서 exmd 파일에서 해당 컬럼과 모델 항목 설정을 일일이 수정해 줄 필요가 있습니다. 그리고 edmx에 변경이 발생할 때마다 (테이블의 추가/변경/삭제 등) 기존의 수동 설정은 새로 리셋되기 때문에 갱신 할때마다 설정을 수정하지 않으면 안됩니다. 처음부터 새로 DB를 구축할때 Entity.. 2019. 1. 21.
timestamp/DateTime에서 현재시간을 기준으로 경과시간을 취득 DateTime에서 경과시간을 취득 public static string GetLapsedTimeFromDateTime(DateTime dt) { string timeString = string.Empty; TimeSpan ts = DateTime.Now.Subtract(dt); int DayPeriod = Math.Abs(ts.Days); if (DayPeriod < 1) { int HourPeriod = Math.Abs(ts.Hours); if (HourPeriod < 1) { int MinutePeriod = Math.Abs(ts.Minutes); if (MinutePeriod < 1) { int SecondPeriod = Math.Abs(ts.Seconds); return SecondPeriod... 2019. 1. 21.
EPPlus 템플릿 파일을 사용해서 엑셀파일을 작성 using System.IO; using OfficeOpenXml; // 사전에 수식등이 설정되어 있는 엑셀 파일(템플릿 파일)을 기반으로 // DB등에서 취득한 값을 지정한 셀에 설정하여 byte[]를 엑셀로 다운로드 시킬 경우 byte[] source; MemoryStream stream = new MemoryStream(); using (var template = System.IO.File.OpenRead(AppDomain.CurrentDomain.BaseDirectory + "/App_Data/template.xlsx")) using (var package = new ExcelPackage(stream, template)) { ExcelWorksheet worksheet = null; worksh.. 2019. 1. 16.
EPPlus로 엑셀파일 작성 ASP.NET 기반의 업무용 웹 어플에서 엑셀 출력 기능을 개발하면서 찾아본 내용등을 간단히 정리한 내용입니다. using OfficeOpenXml; using OfficeOpenXml.Style; /// /// Model 데이터를 기반으로 Excel 작성 /// /// /// byte[] public byte[] MakeDetailsAsExcel(ContractExcelModel excelModel) { using (var package = new ExcelPackage()) { var worksheet = package.Workbook.Worksheets.Add("Sheet1"); worksheet.Column(1).Width = 3; var allRangeHeight = 500; // workshe.. 2019. 1. 16.
정수의 N위치에서 반올림 /// /// 정수의 N위치에서 반올림 /// 엑셀파일과 같은 반올림을 할 경우엔 MidpointRounding.AwayFromZero를 이용 /// ex) GetExcelRound(13405, 1) // return 13410 /// ex) GetExcelRound(13405, 2) // return 13400 /// /// /// /// public static double GetExcelRound(double value, int digit) { var val1 = double.Parse((0.01 * Math.Pow(0.1, digit - 1)).ToString(), System.Globalization.NumberStyles.Float); var val2 = 100 * Math.Pow(10, di.. 2019. 1. 16.
iTextSharp로 PDF 작성 ASP.NET 기반의 업무용 웹 어플에서 PDF 출력 기능을 개발하면서 찾아본 내용등을 미래의 자신을 위해 간단히 정리한 내용입니다. 기본적으로 PDF 작성은 각 요소를 테이블로 작성하는 편이 조정할때 편한 것 같습니다. using iTextSharp.text; using iTextSharp.text.pdf; /// /// PDF 파일 작성 /// ※1. 포맷용의 PDF가 있을 경우 /// ※2. 복수 페이지의 PDF를 연속으로 출력할 경우도 대응가능 /// ※3. 웹 어플&응용 콘솔 양쪽에서 호출될 경우를 상정(공통로직) /// /// PDF스트림 /// PDF작성용 모델(리스트) /// 웹/응용 콘솔 양쪽에서 호출된 경우의 판단용 public void MakePdfStream(MemoryStream .. 2019. 1. 16.