본문 바로가기

컴퓨터

(54)
[C#/ PostgreSQL] AWS RDS(PostgreSQL) 접속하기 및 쿼리 Npgsql (NetPostGreSQL) - PostgreSQL의 데이터를 제공하는 라이브러리 - .NET Framework로 개발되는 어떤 프로그램이던 PostgreSQL에 접근하는 것을 허용 - 100% 순수 C#으로 개발되었음 - PostgreSQL 9.0 버전부터 공식적으로 지원함 - 최신 버전은 3.1.5(stable)임 (.NET4.5 기준 / .NET4.0은 버전 2.2.7을 사용해야함) - 라이센스는 PostgreSQL License를 따름 (수정 후 배포 조건이 없고 자유로움) 1234567891011121314151617181920// AWS RDS 계정을 이용하여 PostgreSQL 연결public string Connect(AWSCredentials credentials){ var ..
[C#/ PostgreSQL] C#에서 Npgsql TimestampTZ 쿼리 C# Datetime to Npgsql TimestampTZ C# 을 이용하여 TimestampTZ 형식의 컬럼에 데이터를 넣을 때, 입력한 시간과 다르게 출력되는 경우가 있다. C#에서 입력한 시간보다 DB에는 9시간( UTC+9 한국 기준) 느린 시간이 출력되는데,이는 C# 에서 UTC 설정을 해주면 해결할 수 있다. 123456// DateTime 예제 (SpecifyKind 메소드)var time = new DateTime(2015, 10, 27, 0, 0, 0);Console.WriteLine(time.ToString()); // 2015-10-27 오전 12:00:00 var date = DateTime.SpecifyKind(time, DateTimeKind.Utc);Console.WriteL..
[DevExpress] GridControl 정렬 후 여러 항목의 인덱스 가져오기 Get multiselect rows index after sorting GridControl with DataTable DevExpress 의 GridControl 사용 시, DB로부터 받은 DataTable 형식의 데이터를 DataSource 속성에 넣었다. 12var table = new DataTable(); // from DBthis.gridControl1.DataSource = table;cs 그러면 자동으로 컬럼이 입력된다. 여기서, 선택된 Row의 Index를 가져오려면 두가지 속성을 사용할 수 있다. 출처 : DevExpress Identifying Rows and Cards 위 이미지와 같이 그냥 GetSelectedRows() 로 가져오는 것과, RowHandle로 가져오는 방법이 있..
[postgresql] Error: relation does not exist INSERT INTO 시 발생하는 에러로, 문자그대로 보면, 존재하지 않는 테이블 명을 입력했다는 것입니다. 하지만 위 사진을 보면, 분명 Object browser에 적혀있는 그대로 적었는데도 에러가 발생하는 경우가 있습니다. 이럴땐, - 해결 방법 : 테이블 명이 Uppercase, Lowercase 혼용일 경우, 쿼리에서 테이블명에 ""를 씌워주면 됩니다. "" 를 붙이냐 안붙이냐의 차이는, 쿼리를 해석할 때, '대소문자를 구분해라'라는 의미라고 합니다. 만약, 테이블명에 대소문자가 혼용되어있다면, 이를 구분해줘야하기 때문에 ""를 반드시 써야하고, 테이블명에 소문자만 있을 경우, ""를 써도 되고 안써도 된다는 것입니다. 그러므로, 테이블 명은 가능하면 모두 Lowercase로 만드는 것이 좋습니..
[.net] jni4net 을 이용하여 c# .net 에서 .jar 파일 사용하기 jni4net 이 라이브러리는 Java에서 C# 라이브러리를 사용하거나C#에서 Java 라이브러리를 사용할 수 있도록 도와줍니다. 여기서는 C#에서 Java 라이브러리를 사용하는 방법에 대해 다룹니다. 크게 두 작업 절차를 거치는데,첫째는, 라이브러리에 포함된 실행파일인 '프록시 파일'을 실행하면, 브릿지 역할을 하는 자바, 닷넷 코드와 배치 파일 등을 생성해줍니다.둘째는, 생성된 배치 파일을 실행하면, 코드를 컴파일하여 *.j4n.dll 파일과 *.j4n.jar 파일을 생성합니다.라이브러리에 포함된 jni4net.dll 파일과, 생성된 *.j4n.dll 파일이 C#과 자바 사이의 다리 역할을 한다고 볼 수 있습니다. 하지만, jni4net 에서 프록시 과정을 잘 거치려면, jar 파일이 몇가지 조건을 ..
[VS10] 사용 가능한 소스 없음, PDB가 이미지와 일치하지 않습니다. 문제 : 프로젝트에 dll 파일을 참조하였다. 그리고, 해당 dll에 대한 소스 파일을 디버깅하기 위하여 빌드할 때 만들어진 pdb 파일을 같은 경로에 두었다.그런데 디버깅 중, 해당 모듈을 사용하는 곳에서 소스가 로드되지 않고 '사용 가능한 소스 없음' 창이 떴다. 자세한 정보를 얻기 위하여 아래 이미지와 같이 호출 스택에서 기호 로드 정보를 도시하였다. 그러면, 아래와 같은 PDB 기호 로드 정보 창이 도시된다. 내용을 보면 'PDB 파일을 찾거나 열 수 없습니다.' 와 같은 내용이 대부분이지만, 첫번째 줄에서 'PDB가 이미지와 일치하지 않습니다.'라는 문구를 볼 수 있다. 첫번째 줄의 경로에서 PDB 파일을 찾았지만 모듈 파일과 무언가 정보가 일치하지 않는다는 것 같다. 해결 방법 :아래 문구로 ..
[C#] 확장 메서드 확장 메서드란, 메서드가 사용될 클래스명을 첫번째 파라미터로 지정하여,마치 해당 클래스가 확장 메서드를 인스턴스 메서드로 갖는 것처럼 보이게하는 것이다. 확장 메서드의 사용 방법은, 첫번째 파라미터의 앞에 this 키워드를 써주면 된다. 1234567891011namespace ExtensionMethods { public static class MyExtensions { public static int WordCount(this String str) { return str.Split(new char[] { ' ', '.', '?' }, StringSplitOptions.RemoveEmptyEntries).Length; } } } Colored by Color Scriptercs>> WordCount 라..
[DevExpress] PropertyGrid 사용 중 확장되지 않는 속성 문제 DevExpress 버전 : 13.1 DX의 PropertyGridControl 사용 중에 아래와 같이 하위 속성이 존재하지만 컨트롤 상에서 확장되지 않는 경우가 있다. 확장되지 않는 클래스의 이름이 'MyClass'라고 할 때, 아래와 같이 Attribute를 추가한다.(구조체로도 가능하다.)12345[TypeConverter(typeof(ExpandableObjectConverter))]public class MyClass{ ....} Colored by Color Scriptercs 그러면 클래스를 확장시킬 수 있게 된다. keyword : c# propertygrid can't expand참고 : [StackOverflow] How do I view object properties in Prope..