private void BindData() { dt_Alert = new DataTable(); DB.Cloud cloud = new DB.Cloud(); //int nReturn = cloud.W_AlertCountList_Server(ServerNum, Convert.ToInt32(ConfigurationManager.AppSettings["ChartDataDuration"])); int nReturn = cloud.get_AlertMessage(ServerNum.ToString(), Convert.ToInt32(ConfigurationManager.AppSettings["ChartDataDuration"])); //신규추가 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_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); } } }
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(); }