반응형

오랜만에 C#으로 찾아왔습니다.

 

Linq 라는 것은 데이터와 데이터를 비교하여 필요한 데이터를 다시 새롭게 재 구성하기 위해서 쓰는 것이라고 요번에 습득 하였습니다.

 

이번 로직을 만들면서 2가지를 다시 배웠습니다.

 

1. LinQ는 데이터와 데이터를 재 구성하여 필요한 데이터만 찾을 수 있다.

2. DataTable에도 타입이 존재한다.

 

2번 같은 경우는 select를 다시 할 때 무척이나 애 먹었습니다..

실제 오라클 테이블에 Number로 정의가 되어있어서 데이터테이블로 데이터를 가져왔을때 컬럼 타입이 Int32로 구성되어있어서 그 부분을 확인 하지 못해 엄청난 삽질을 하였습니다.

 

아래는 제가 Linq를 사용하여 데이터를 구성한 로직입니다.

 

감사합니다.

 

//APIdt , Resultdt는 데이터 테이블 형식 입니다. 
var query = (from APIData in APIdt.AsEnumerable()
			 join dbData in Resultdt.AsEnumerable()
			 on new
			 {
				 //비교할 이름을 같게 해주어야 합니다. TEST1 , TEST2
				 TEST1 = APIData.Field<string>("TEST1"),
				 TEST2 = APIData.Field<string>("TEST2")
			 }
			 equals new
			 {
				//비교할 이름을 같게 해주어야 합니다. TEST1 , TEST2
				 TEST1 = dbData.Field<string>("TEST1"),
				 TEST2 = dbData.Field<string>("TEST2")
			 }
			 select new
			 {
				 //Field 형식이 굉장히 중요하기 떄문에 데이터테이블의 타입이 어떤것인지 꼭 확인이 필요합니다. 
				 //Test1 , Test2 , Test3 , Test4는 변수입니다. 
				 Test1 = APIData.Field<string>("REQ_SVC"),
				 Test2 = dbData.Field<int>("FCL_CNT"),
				 Test3 = dbData.Field<int>("LCL_CNT"),
				 Test4 = dbData.Field<int>("CONSOL_CNT")
			 });                    

//데이터테이블을 생성 해 줍니다.
DataTable Final_DT = new DataTable();
Final_DT.Columns.Add("Test1");
Final_DT.Columns.Add("Test2");
Final_DT.Columns.Add("Test3");
Final_DT.Columns.Add("Test4");

//구성된 데이터를 다시 데이터테이블로 만들어줍니다. 
foreach (var item in query)
{
	DataRow Final_Dr = Final_DT.NewRow();
	Final_Dr["Test1"] = item.Test1;
	Final_Dr["Test2"] = item.Test2;
	Final_Dr["Test3"] = item.Test3;
	Final_Dr["Test4"] = item.Test4;
	Final_DT.Rows.Add(Final_Dr);
}

완성된 데이터 테이블
Final_DT

 

반응형

[2021.05.07]
※2019년에 FullCalendar를 커스터마이징을 하였고 버전은 'v3' 버전을 이용하였습니다. 
현재 v5버전까지 나온것으로 확인되며, v3 버전은 아래 도메인에서 받을 수 있습니다. 

github.com/fullcalendar/fullcalendar/releases/tag/v3.10.2

 

  $('#calendar').fullCalendar({
        header: {            
            //center: 'prev,title,next', 여기에 select 값을 보내서 달력 이동 할 수 있게.
            right : null
        },
        defaultDate: yyyymmdd, //yyyymmdd 날짜를 입력 하여야 합니다.
        editable: true,
        eventLimit: true,
        monthNames: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
        monthNamesShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
        dayNames: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"],
        dayNamesShort: ["일", "월", "화", "수", "목", "금", "토"],
        buttonText: {
            today: "오늘",
            month: "월별",
            week: "주별",
            day: "일별"
        },
        events:
        [
                {
                    id: "A",
                    title: 'My Event',
                    start: '2016-05-29',
                    description: 'This is a cool event'
                }
        ],
        eventRender: function (event, element) {
            if (event.A) {
                alert("A입니다.");
            } else if (event.B) {
                alert("B입니다.");
            }
        }
  });

 

+ Recent posts