public void BindData() { dt_Alert = new DataTable(); //서버리스트 읽어오기 string MyServerList = ""; cloud.SetCmd("Cloud"); cloud.get_MyServerList(MemberNum); foreach (DataRow dr in cloud.dsReturn.Tables[0].Rows) { MyServerList += dr["ServerNum"].ToString() + ","; } MyServerList = MyServerList.Substring(0, MyServerList.Length - 1); //DB.Cloud cloud = new DB.Cloud(); int nReturn = cloud.get_AlertMessage(MyServerList, numAlertDataDuration); //if (cloud.dsReturn != null) //{ // DataTable dt_Alert_tmp = cloud.dsReturn.Tables[0]; // string strExpression = "DisPlayGroup = '" + strGroupName + "'"; // DataRow[] dr = dt_Alert_tmp.Select(strExpression); // dt_Alert = dt_Alert_tmp.Clone(); // foreach (DataRow d in dr) // { // dt_Alert.ImportRow(d); // } //} //cloud.dsReturn.Dispose(); if (cloud.dsReturn.Tables[0].Rows.Count > 0) { //데이터 테이블 구조생성용으로 첫번째 json데이터를 불러와서 컬럼명을 자동셋팅하도록 DataTable tester = (DataTable)JsonConvert.DeserializeObject(((string)cloud.dsReturn.Tables[0].Rows[0]["Data_Json"]), (typeof(DataTable))); //tester 에는 실제로 데이터가 들어가잇고 clone 을 이용해 dt_Struct 에 데이터테이블 구조만 복사 DataTable dt_struct = new DataTable(); dt_Alert = tester.Clone(); dt_Alert.Columns.Add("RepeatCnt"); dt_Alert.AcceptChanges(); //이후 dt_struct 에 계속 merge(union) 하여 하나로 합체 테스트로 돌려보니 rowcount 8만 정도 나왓네요 foreach (DataRow dr in cloud.dsReturn.Tables[0].Rows) { DataTable dt_tmp = (DataTable)JsonConvert.DeserializeObject(((string)dr["Data_Json"]), (typeof(DataTable))); //신규추가 2017 - 09 - 23 데이터 머지 = mssql union //신규추가 2017 - 09 - 23 참조 https://msdn.microsoft.com/ko-kr/library/fk68ew7b(v=vs.110).aspx dt_Alert.Merge(dt_tmp); } } cloud.dsReturn.Dispose(); }
public void BindData() { dt_Alert = new DataTable(); //서버리스트 읽어오기 string MyServerList = ""; cloud.SetCmd("Cloud"); cloud.get_MyServerList(MemberNum); foreach (DataRow dr in cloud.dsReturn.Tables[0].Rows) { MyServerList += dr["ServerNum"].ToString() + ","; } MyServerList = MyServerList.Substring(0, MyServerList.Length - 1); int nReturn = cloud.get_ServerStatus(MyServerList); if (cloud.dsReturn.Tables[0].Rows.Count > 0) { MyServerList = ""; foreach (DataRow dr in cloud.dsReturn.Tables[0].Select("ServerType = 'Web'")) { MyServerList += dr["ServerNum"].ToString() + ","; } MyServerList = MyServerList.Substring(0, MyServerList.Length - 1); } nReturn = cloud.get_Dashboard(MyServerList);; dt_w_Dashboard = Lib.ConvertingProc.w_Dashboard(cloud.dsReturn.Tables[0]); gvList.DataSource = dt_w_Dashboard; nReturn = nReturn = cloud.get_Dashboard_Chart(MyServerList); dt_w_Dashboard_chart = Lib.ConvertingProc.ChangeDashboardColumnName(cloud.dsReturn.Tables[0]); //각 차트에서 참조해서 사용할 공통 데이터 테이블 생성 nReturn = cloud.get_PerfvaluesData_Company(CompanyNum); //신규추가 2017-09-23 if (cloud.dsReturn.Tables[0].Rows.Count > 0) { //데이터 테이블 구조생성용으로 첫번째 json데이터를 불러와서 컬럼명을 자동셋팅하도록 DataTable tester = (DataTable)JsonConvert.DeserializeObject(((string)cloud.dsReturn.Tables[0].Rows[0]["Data_Json"]), (typeof(DataTable))); //tester 에는 실제로 데이터가 들어가잇고 clone 을 이용해 dt_Struct 에 데이터테이블 구조만 복사 //DataTable dt_struct = new DataTable(); dt_PerfmonValue = tester.Clone(); dt_PerfmonValue.AcceptChanges(); // 이후 dt_struct 에 계속 merge (union) 하여 하나로 합체 테스트로 돌려보니 rowcount 8만 정도 나왓네요 foreach (DataRow dr in cloud.dsReturn.Tables[0].Rows) { DataTable dt_tmp = (DataTable)JsonConvert.DeserializeObject(((string)dr["Data_Json"]), (typeof(DataTable))); //신규추가 2017-09-23 데이터 머지 = mssql union //신규추가 2017-09-23 참조 https://msdn.microsoft.com/ko-kr/library/fk68ew7b(v=vs.110).aspx dt_PerfmonValue.Merge(dt_tmp); } } //dt_FreeDisk 데이터 테이블 만들기 var test = from r in dt_PerfmonValue.AsEnumerable() where (r.Field <string>("PCID") == "P018" || r.Field <string>("PCID") == "P164" || r.Field <string>("PCID") == "P015" || r.Field <string>("PCID") == "P190" || r.Field <string>("PCID") == "P194") && !r.Field <string>("InstanceName").Contains("_Total") && !r.Field <string>("InstanceName").Contains("HarddiskVolume") select r; dt_FreeDisk = dt_PerfmonValue.Clone(); foreach (DataRow r in test) { var newRow = dt_FreeDisk.NewRow(); newRow.ItemArray = r.ItemArray; dt_FreeDisk.Rows.Add(newRow);//I'm doubtful if you need to call this or not } dt_FreeDisk = Lib.ConvertingProc.SetDiskProc_All(dt_FreeDisk); gvList.DataBind(); //Alert Message 로딩 //nReturn = cloud.get_AlertMessage(MyServerList, numAlertDataDuration); //if (cloud.dsReturn.Tables[0].Rows.Count > 0) //{ // //데이터 테이블 구조생성용으로 첫번째 json데이터를 불러와서 컬럼명을 자동셋팅하도록 // DataTable tester = (DataTable)JsonConvert.DeserializeObject(((string)cloud.dsReturn.Tables[0].Rows[0]["Data_Json"]), (typeof(DataTable))); // //tester 에는 실제로 데이터가 들어가잇고 clone 을 이용해 dt_Struct 에 데이터테이블 구조만 복사 // DataTable dt_struct = new DataTable(); // dt_Alert = tester.Clone(); // dt_Alert.Columns.Add("RepeatCnt"); // dt_Alert.AcceptChanges(); // //이후 dt_struct 에 계속 merge(union) 하여 하나로 합체 테스트로 돌려보니 rowcount 8만 정도 나왓네요 // foreach (DataRow dr in cloud.dsReturn.Tables[0].Rows) // { // DataTable dt_tmp = (DataTable)JsonConvert.DeserializeObject(((string)dr["Data_Json"]), (typeof(DataTable))); // //신규추가 2017 - 09 - 23 데이터 머지 = mssql union // //신규추가 2017 - 09 - 23 참조 https://msdn.microsoft.com/ko-kr/library/fk68ew7b(v=vs.110).aspx // dt_Alert.Merge(dt_tmp); // } //} //cloud.dsReturn.Dispose(); }
public void BindData() { DB.Cloud cloud = new DB.Cloud(); //DataTable dt_ServerAlertList = new DataTable(); //서버리스트 읽어오기 string MyServerList = ""; cloud.SetCmd("Cloud"); cloud.get_MyServerList(MemberNum); if (cloud.dsReturn.Tables[0].Rows.Count == 0) { return; } foreach (DataRow dr in cloud.dsReturn.Tables[0].Rows) { MyServerList += dr["ServerNum"].ToString() + ","; } if (MyServerList.Length > 0) { MyServerList = MyServerList.Substring(0, MyServerList.Length - 1); } cloud.SetCmd("Cloud"); int nReturn = cloud.get_ServerStatus(MyServerList); DataSet ds = cloud.dsReturn; List <string> dt_Group = new List <string>(); if (ds != null) { dt_ServerList = Lib.ConvertingProc.w_Dashboard(ds.Tables[0]); var tmp_Group = from tbl in ds.Tables[0].AsEnumerable() orderby tbl["DisplayGroup"] ascending group tbl by tbl["DisplayGroup"] into tmp select tmp; foreach (var i in tmp_Group) { dt_Group.Add(i.Key.ToString()); } tmp_Group = null; } else { return; } ds.Clear(); ds.Dispose(); rpt_ServerStatus.DataSource = dt_Group; rpt_ServerStatus.DataBind(); dt_Group.Clear(); //nReturn = cloud.W_AlertCountList(MemberNum, CompanyNum, numAlertDataDuration); //if (cloud.dsReturn != null) //{ // dt_ServerAlertList = cloud.dsReturn.Tables[0]; // var tmp_Group = from tbl in dt_ServerAlertList.AsEnumerable() // orderby tbl["DisplayGroup"] ascending // group tbl by tbl["DisplayGroup"] into tmp // select tmp; // foreach (var i in tmp_Group) // { // SetAlertDic(dt_ServerAlertList, i.Key.ToString()); // dt_Group.Add(i.Key.ToString()); // } // cloud.dsReturn.Clear(); // cloud.dsReturn.Dispose(); // tmp_Group = null; //} //else //{ // return; //} ////rpt_Alert.DataSource = dt_Group; ////rpt_Alert.DataBind(); dt_Group.Clear(); cloud.CloseCon(); }