본문 바로가기

Programing/C#20

C#에서 Excel형식 File 다루기 일단 지금 당장 필요한 DataGridView에 들어있는 데이터를 Excel File로 Export, Import 하는 기능을 시작해서 C#에서 Excel을 다루는 방법을 정리하고자 함. 일단 Microsoft.Office.Interop.Excel을 참조 추가하는 것부터 시작. using Excel = Microsoft.Office.Interop.Excel; .... Excel.Application app = new Excel.Application(); Excel._Workbook wb = app.Workbooks.Add(""); //'_'가 붙고 안붇은 interface의 차이는 찾아 봐야 할 듯. Excel._Worksheet sheet = (Excel.Worksheet) wb.ActiveSheet;.. 2017. 2. 7.
[MERGE INTO]데이터가 없으면 INSERT, 있으면 UPDATE DB에 데이터를 넣는 프로그램을 만들때 내가 넣으려는 데이터가 있으면 Update하고, 없으면 새로 INSERT를 하고 싶은 경우가 종종 있음. 프로그램은 역시 목적을 이루기 위한 다양한 방법이 있음. 이중에 내가 어떤걸 선택하고 어떻게 처리하느냐의 문제. SELECT를 통해 데이터가 있는지 확인후 없으면 INSERT 있으면 UPDATE Try ~ Catch ~ : 프로그램 상에서 무조건 INSERT를 하고, Try Catch로 INSERT시 Oracle 프라이머리키 중복 에러가 발생하면 Catch 부분에서 Update 구문을 실행하는 방법이 있음. MERGE INTO (참조 : http://son10001.blogspot.kr/2014/04/merge-into-insert-update.html) : M.. 2017. 2. 6.
C#의 XML 파일 생성, 사용 XML형식의 장단점, 사용법과 관련해서는 따로 인터넷을 공부해봐야겠음. XML을 사용하기 위해서는 'using System.Xml'을 사용해 주어야 함. - 생성 : XmlTextWriter 클래스를 생성 : 생성자에 '경로, 인코딩(Encoding.UTF8)'을 입력하면 해당 경로에 XML 생성함. 클래스의 Formatting = 'Formatting.Indented'설정 : 들여쓰기 설정. WriteStartDocument() & WriteEndDocument() : 문서 작성의 시작 & 끝. WriteStartElement("[Node 명]") & WriteEndElement() : Node 생성과 끝( : 이걸 작성함.) WriteString("[내용]") : Node 사이에 내용을 넣어주는 역할.. 2017. 2. 3.
C# Delegate ≒ C 함수 포인터 ?!? Delegate라는 개념은 C#을 하면서 처음 들어 봄. C언어의 함수 포인터를 C#에서 구현한것이라고 생각하면 된다라는 설명을 들었음(정확한 설명인지는 잘 모르겠음), C언어에서 배운 함수 포인터에 대해서 기억을 하지도 못하고 있었고, 사용 방법에 대해서도 기억을 못했기에 단박에 이해 할 수 없었지만 함수 포인터와 Delegate를 검색해보니 비슷한 개념인 것 같은 느낌이 든다. - C 함수 포인터 C를 배울때 머릴 아프게 했던 포인터에 대한 개념을 알고 있어야 함(사실 지금도 안다고 자신할 수 없음...) 포인터는 특정 변수에 메모리주소를 담는것인데, 함수 포인터는 특정 함수에 대한 메모리 주소를 담는 것. 함수 포인터를 쓰는 이유는 아래 참조 사이트에 들어가면 더 자세한 설명이 있음(정리가 정말 잘.. 2017. 2. 1.