가계부 프로그램을 만들려고 구상을 하고 DB를 가지고 Test작업을 하던 중 몇몇 문제가 생겼습니다.


int (Integer) 형 같은 경우는 PostgreSQL(이하 DB)에도 있고 C#에도 있습니다.


하지만 DB에서는 날짜와 시간의 타입이 따로 있어서 Date과 Time (여러가지가 있음, 타임존 있고 없고도 고를 수 있고...)


C#의 경우에는 Class가 Datetime이라는 클래스가 있습니다.


물론 해당 클레스가 잘 되어있어서 년, 월, 일, 시, 분 초, 밀리 초 등등 각각의 속성값으로 받아올 수 있습니다.



일단은 그냥 바인딩을 해 봤는데, DB에서 조회하면 아래와 같습니다.


<사진 1> DB에서 record조회

날짜와 시간이 잘 나뉘어 나옵니다.


<사진 2> C#에서 바인딩한 데이터그리드에서 보이는 결과

이 문제가 발생하는 이유가 아마 두 타입을 모두 c#에서는 Datetime으로 받아오기 때문이라고 판단하고 해당 내용에 대해 구글링~


역시나 답은 Stackoverflaw 정말 도움받고있습니다.


아래의 해결책을 보면 정말 간단하게 해결을 할 수 있습니다.


<사진 3> 해결책 - 문자열의 형식을 지정해줌.

위의 xaml코드와 같이 문자열의 형식을 지정해서 제가 원하는 방식으로 보이도록 수정을 하였습니다.




<사진 4> 적용 후 프로그램 화면

아까의 화면보다 훨씬 더 깔끔해진 것을 확인할 수 있습니다.



<사진 5> 스택오버플로에서 받아온 영감입니다.

누군가에겐 정말 간단한것이 어떻게 처리를 해야 좋을까 한참 고민한 것을 보고, 저에게 c#의 기본이 정말 부족하다는 생각을 하게 만들어주었습니다.


그래도 간단하지만 효과적으로 해결을 했다고 생각하니 뿌듯합니다.

+ Recent posts