본문 바로가기

Development/C#

Dictionary 에서 Key 와 value의 Type 가져오기(GetType 사용방법) 많이 쓰지는 않지만 현재 사용중인 Dictionary가 key, value 타입을 모를 경우 GetType으로 가져오는 방법 Dictionary dicValue = new Dictionary(); Type[] arguments = dicValue.GetType().GetGenericArguments(); Type keyType = arguments[0]; Type valueType = arguments[1]; 더보기
[C#] 엑셀(Excel) 개행문자(엔터, 줄바꿈) 제거 엑셀에서 자료를 수집하여 등록하는 경우에는 여러가지 특수문자중 개행문자 처리가 생각보다 귀찮게 함. 일반적으로 Replace로 처리하는 경우가 일반적이나 가끔 아래의 방법(Replace)으로 처리되지 않는 경우가 있음. string.Replace("\r\n", ""); OR string.Replace(Enviroment.NewLine, ""); 만약 위에 처리에도 개행문자가 삭제 되지 않는 다면 정규식으로 삭제하는 방법으로 삭제가 가능하다. 해당 방법으로 처리가 여러번 일어나므로 string에 함수를 추가하여 사용한다. using System.Text.RegularExpressions; public static String ToExcelValue(this string strValue) { return R.. 더보기
Visual Studio 에서 Ctrl + 마우스 클릭시 정의로 이동 이전 버전의 Visual Studio에서 잘 쓰던 Ctrl +마우스 클릭시 클릭한 단어 선택 기능이 최신버전부터 해당 함수의 정의로 이동하여 해당 기능을 해제하고 원래 사용하던 단어 선택으로 변경하고자 한다. 1. Visual Studio에 도구(T) - 옵션(O)를 선택한다. 2. 옵션창에서 텍스트 편집기 - 일반 창으로 이동 3. "마우스 클릭을 사용하여 [정의로 이동] 수행(G)를 체크를 해제한다. - 저는 개인적으로 Alt + 클릭으로 사용하려고 체크를 해제하지 않고 Alt로 변경하였음. 더보기
'MySqlParameterCollection.Add(string, object)'은(는) 사용되지 않습니다. 경고 CS0618 'MySqlParameterCollection.Add(string, object)'은(는) 사용되지 않습니다. 'Add(String parameterName, Object value) has been deprecated. Use AddWithValue(String parameterName, Object value)' 기존 구형 mysqlconnector와 .net framework를 사용하던 소스를 최신버전으로 컨버팅 작업중 아래의 경고가 281개나 표시되었다. 뭐 소스 버전업중 너무나도(?) 자주 일어나는 일이므로 당황하지 않고 대체 메소드를 찾은뒤 "전체 바꾸기" 로 해당 경고를 처리한다. 경고라 나둬도 상관은 없지만 굳이 경고를 보고도 두는건 거슬리는 일이므로 ..... 기존코드 .. 더보기
비주얼 스튜디오(Visual Studio) 2017 2019 Setup 프로젝트 추가하기 이전버전과는 다르게 Visual Studio 2017, 2019는 Setup 프로젝트를 별도로 확장 프로그램으로 설치해야 생성이 가능함. 확장기능으로 Setup 프로젝트를 만들려면 Microsoft Visual Studio Installer Projects 를 설치해야 함 1. VS 2017, 2019의 상단메뉴에서 확장(X) -> 확장관리 2. 확장관리의 우측 검색(Ctrl+E)에 install로 검색하시면 Microsoft Visual Studio Installer Projects 가 보여짐 - 다운로드(D) 클릭으로 설치하기 - 다운로드중 3. 다운로드가 완료되면 Visual Studio를 종료 4. 다시 Visual Studio를 실행시 아래의 설치창에서 Modify를 클릭 5. Microsoft.. 더보기
C# DataTable Foreach로 DataRow 삭제하기 foreach(DataRow dr IN dtData.Rows) { if(dr["name"].ToSting() == "smith") dr.Remove(); } 개발을 하다보면 위와같이 처리해야 하는 경우가 종종 발생한다. 그럼 컴파일시 아래와 같은 오류가 발생한다. 컬렉션이 수정되었습니다. 열거 작업이 실행되지 않을 수 있습니다. 현재 사용중인 Collection에 직접 삭제작업이 안되므로 다른 방법으로 삭제해야 한다. 처리방법 foreach(DataRow dr IN dtData.Select()) { if(dr["name"].ToSting() == "smith") dr.Delete(); } dtData.AcceptChanges(); 1. foreach(DataRow dr IN dtData.Select()).. 더보기
C# CommandText 로 Mysql에 직접 트리거 생성하기 사용중인 데이터베이스의 업데이트 처리를 위해 트리거를 코드에서 직접 생성해야 할때 CommandText로 해당 Create Trigger `table_before_delete`.... 로 생성하려 해도 에러로 실행되지 않는다. 그럴경우 MysqlCommand 대신 MySqlScript로 해당 구문을 실행시켜서 트리거를 생성한다. 1. Mysql에 접속 MySqlConnection conn = new MySqlConnection(strConnection); 2. MySqlScript 생성 MySqlScript script = new MySqlScript(conn); 3. MySqlScript에 Query 변수에 트리거 생성 구문 등록 - //DELIMITER 필요, 종료시 //처리도 함꼐 필요 //;로 문.. 더보기
BitBucket 에서 GitHub로 Repository 이전 방법 기존 BitBucket에서 관리중인 프로젝트를 GitHub로 통합 관리하기 위해 이전 작업을 진행하였음. 현재 Visual Studio 2019에서 프로젝트를 작업중이므로 리포지토리 설정의 화면은 2019버전에서 진행하며 캡쳐하였음. 1. 먼저 BitBucket에서 관리중인 Repository의 경로를 알아 둔다. - 아래와 같이 https://계정명@bitbucket.org/계정명/프로젝트명.git 형태로 되어 있다. 2. git 콘솔에서 복사 명령 실행 - 실행시 위에서 확인한 BitB ucket의 Repository 경로를 기입한다. git clone --mirror https://계정명@bitbucket.org/계정명/프로젝트명.git 3. 현재 로컬에서 작업중인 폴더로 이동 - 현재 기본 리포지.. 더보기