private ICollection CreateVariableDataSource(SqlResult result) { try { DataTable dataTable = new DataTable(); DataRow dataRow; dataTable.Columns.Add(new DataColumn("VariableName", typeof(String))); dataTable.Columns.Add(new DataColumn("VariableValue", typeof(String))); result.SetFieldType(new SqlDataType[]{ SqlDataType.String, SqlDataType.String }); object[] record; while ((record = result.ReadRecord()) != null) { dataRow = dataTable.NewRow(); dataRow[0] = record[0] as string; dataRow[1] = record[1] as string; dataTable.Rows.Add(dataRow); } ViewState["Variables"] = dataTable; return new DataView(dataTable); } catch (Exception) { return null; } }
private ICollection CreateProcessListDataSource(SqlResult result) { try { DataTable dataTable = new DataTable(); DataRow dataRow; dataTable.Columns.Add(new DataColumn("User", typeof(String))); dataTable.Columns.Add(new DataColumn("Host", typeof(String))); dataTable.Columns.Add(new DataColumn("Database", typeof(String))); dataTable.Columns.Add(new DataColumn("Command", typeof(String))); dataTable.Columns.Add(new DataColumn("Time", typeof(String))); dataTable.Columns.Add(new DataColumn("State", typeof(String))); dataTable.Columns.Add(new DataColumn("Info", typeof(String))); result.SetFieldType(new SqlDataType[]{ SqlDataType.Int32, SqlDataType.String, SqlDataType.String, SqlDataType.String, SqlDataType.String, SqlDataType.String, SqlDataType.String, SqlDataType.String }); object[] record; while ((record = result.ReadRecord()) != null) { dataRow = dataTable.NewRow(); dataRow[0] = record[1] as string; dataRow[1] = record[2] as string; dataRow[2] = record[3] as string; dataRow[3] = record[4] as string; dataRow[4] = record[5] as string; dataRow[5] = record[6] as string; dataRow[6] = record[7] as string; dataTable.Rows.Add(dataRow); } ViewState["ProcessList"] = dataTable; return new DataView(dataTable); } catch (Exception) { return null; } }
private ICollection CreateDataSource(SqlResult result, int serverId) { try { DataTable dataTable = new DataTable(); DataRow dataRow; dataTable.Columns.Add(new DataColumn("Name", typeof(String))); dataTable.Columns.Add(new DataColumn("Type", typeof(String))); dataTable.Columns.Add(new DataColumn("Leader", typeof(String))); dataTable.Columns.Add(new DataColumn("NodeGUID", typeof(String))); dataTable.Columns.Add(new DataColumn("ChildCount", typeof(Int32))); dataTable.Columns.Add(new DataColumn("ServerId", typeof(Int32))); dataTable.Columns.Add(new DataColumn("RoleNameEncoded", typeof(String))); result.SetFieldType(new SqlDataType[]{ SqlDataType.String, SqlDataType.String, SqlDataType.Int32, SqlDataType.String, SqlDataType.Int32 }); object[] record; while ((record = result.ReadRecord()) != null) { dataRow = dataTable.NewRow(); dataRow[0] = record[0] as string; string typeText = string.Empty; switch ((int)record[2]) { case 2: typeText = StringDef.Clan; break; case 3: typeText = StringDef.Seigneur; break; case 4: typeText = StringDef.Nation; break; } dataRow[1] = typeText; dataRow[2] = record[1] as string; dataRow[3] = record[3] as string; dataRow[4] = (int)record[4]; dataRow[5] = serverId; dataRow[6] = Server.UrlEncode(record[1] as string); dataTable.Rows.Add(dataRow); } return new DataView(dataTable); } catch (Exception) { return null; } }
protected void ZedGraphWebStatistic_RenderGraph(ZedGraph.Web.ZedGraphWeb webObject, Graphics g, MasterPane masterPane) { if (_server != null) { GraphPane graphPane = masterPane[0]; if (_statisticType == 1) { FS2RoleType[] roleClasses = FS2GameDataManager.RoleClasses; SqlCommand[] cmds = new SqlCommand[roleClasses.Length]; SqlResult[] results = new SqlResult[roleClasses.Length]; for (int i = 0; i < roleClasses.Length; i++) { cmds[i] = new SqlCommand("SELECT RoleLevel,COUNT(*) FROM rolesfirst WHERE RoleType=? GROUP BY RoleLevel", (int)roleClasses[i]); if (!_server.IsConnected) { //LabelMessage.Visible = true; //LabelMessage.Text = StringDef.NoConnectionAlert; return; } results[i] = WebUtil.QueryGameServerDb(CurrentUser.Id, _server, cmds[i]); } bool success = true; for (int i = 0; i < roleClasses.Length; i++) { if (results[i] == null || !results[i].Success) { success = false; break; } } if (success) { //整理数据 SqlDataType[] dataTypes = new SqlDataType[] { SqlDataType.Int16, SqlDataType.UInt32 }; for (int i = 0; i < roleClasses.Length; i++) { results[i].SetFieldType(dataTypes); } int minLevel = 1; int maxLevel = FS2GameDataManager.MaxLevel; object[] record = null; RoleLevelStatisticInfo[] infos = new RoleLevelStatisticInfo[maxLevel - minLevel + 1]; for (int i = minLevel; i <= maxLevel; i++) { RoleLevelStatisticInfo info = new RoleLevelStatisticInfo((short)i); info.Counts = new UInt32[roleClasses.Length]; infos[i - minLevel] = info; } for (int i = 0; i < roleClasses.Length; i++) { while ((record = results[i].ReadRecord()) != null) { Int16 level = (Int16)record[0]; UInt32 count = (UInt32)record[1]; infos[level - minLevel].Counts[i] = count; } } //绘制图表 string[] roleClassNames = new string[] { StringDef.Jiashi, StringDef.Daoshi, StringDef.Yiren }; graphPane.Title.Text = StringDef.RoleCountByLevel; graphPane.Fill = new Fill(WebConfig.GraphPaneBgColor); graphPane.Legend.FontSpec.Fill.IsVisible = false; graphPane.Legend.Fill.IsVisible = false; graphPane.Legend.Border.IsVisible = false; graphPane.XAxis.Title.Text = StringDef.Level; graphPane.XAxis.Scale.Max = maxLevel + 1; graphPane.XAxis.Scale.Min = minLevel - 1; graphPane.XAxis.Scale.MajorStep = 5; graphPane.XAxis.Scale.MinorStep = 1; graphPane.XAxis.MajorGrid.Color = WebConfig.GraphXAxisGridColor; graphPane.YAxis.Title.Text = StringDef.Count; graphPane.YAxis.Scale.Min = 0; graphPane.YAxis.MajorGrid.IsVisible = true; graphPane.YAxis.MajorGrid.DashOff = 0; graphPane.YAxis.MajorGrid.Color = Color.Gray; graphPane.YAxis.MinorGrid.IsVisible = true; graphPane.YAxis.MinorGrid.Color = Color.LightGray; graphPane.YAxis.MinorGrid.DashOff = 0; if (_chartType == ChartType.Bar) { graphPane.BarSettings.Type = BarType.Stack; double[] counts = new double[infos.Length]; double[] levels = new double[infos.Length]; for (int i = 0; i < roleClasses.Length; i++) { for (int j = 0; j < infos.Length; j++) { RoleLevelStatisticInfo info = infos[j] as RoleLevelStatisticInfo; counts[j] = info.Counts[i]; levels[j] = info.Level; } BarItem barItem = graphPane.AddBar(roleClassNames[i], levels, counts, Colors[i]); barItem.Bar.Fill = new Fill(Colors[i]); } } else if (_chartType == ChartType.Line) { double[] counts = new double[infos.Length]; double[] levels = new double[infos.Length]; for (int i = 0; i < roleClasses.Length; i++) { for (int j = 0; j < infos.Length; j++) { RoleLevelStatisticInfo info = infos[j] as RoleLevelStatisticInfo; counts[j] = info.Counts[i]; levels[j] = info.Level; } LineItem lineItem = graphPane.AddCurve(roleClassNames[i], levels, counts, Colors[i], (showSymbol ? WebConfig.GraphSymbols[i] : SymbolType.None)); lineItem.Line.Width = 1; } } graphPane.AxisChange(g); } } else if (_statisticType == 2) { SqlCommand[] cmds = new SqlCommand[RoleSexCount]; SqlResult[] results = new SqlResult[RoleSexCount]; for (int i = 0; i < RoleSexCount; i++) { cmds[i] = new SqlCommand("SELECT RoleLevel,COUNT(*) FROM rolesfirst WHERE RoleSex=? GROUP BY RoleLevel", i); if (!_server.IsConnected) { //LabelMessage.Visible = true; //LabelMessage.Text = StringDef.NoConnectionAlert; return; } results[i] = WebUtil.QueryGameServerDb(CurrentUser.Id, _server, cmds[i]); } bool success = true; for (int i = 0; i < RoleSexCount; i++) { if (results[i] == null || !results[i].Success) { success = false; break; } } if (success) { int minLevel = 1; int maxLevel = FS2GameDataManager.MaxLevel; //整理数据 SqlDataType[] dataTypes = new SqlDataType[] { SqlDataType.Int16, SqlDataType.UInt32 }; for (int i = 0; i < RoleSexCount; i++) { results[i].SetFieldType(dataTypes); } object[] record = null; RoleLevelStatisticInfo[] infos = new RoleLevelStatisticInfo[maxLevel - minLevel + 1]; for (int i = minLevel; i <= maxLevel; i++) { RoleLevelStatisticInfo info = new RoleLevelStatisticInfo((short)i); info.Counts = new UInt32[RoleSexCount]; infos[i - minLevel] = info; } for (int i = 0; i < RoleSexCount; i++) { while ((record = results[i].ReadRecord()) != null) { Int16 level = (Int16)record[0]; UInt32 count = (UInt32)record[1]; infos[level - minLevel].Counts[i] = count; } } //绘制图表 string[] roleSexNames = new string[] { StringDef.Male, StringDef.Female }; graphPane.Title.Text = StringDef.RoleCountByLevel; graphPane.Fill = new Fill(WebConfig.GraphPaneBgColor); graphPane.Legend.Fill.IsVisible = false; graphPane.Legend.Border.IsVisible = false; graphPane.XAxis.Title.Text = StringDef.Level; graphPane.XAxis.Scale.Max = maxLevel + 1; graphPane.XAxis.Scale.Min = minLevel - 1; graphPane.XAxis.Scale.MajorStep = 5; graphPane.XAxis.Scale.MinorStep = 1; graphPane.XAxis.MajorGrid.Color = WebConfig.GraphXAxisGridColor; graphPane.YAxis.Title.Text = StringDef.Count; graphPane.YAxis.MajorGrid.IsVisible = true; graphPane.YAxis.MajorGrid.DashOff = 0; graphPane.YAxis.MajorGrid.Color = Color.Gray; graphPane.YAxis.MinorGrid.IsVisible = true; graphPane.YAxis.MinorGrid.Color = Color.LightGray; graphPane.YAxis.MinorGrid.DashOff = 0; if (_chartType == ChartType.Bar) { graphPane.BarSettings.Type = BarType.Stack; double[] counts = new double[infos.Length]; double[] levels = new double[infos.Length]; for (int i = 0; i < RoleSexCount; i++) { for (int j = 0; j < infos.Length; j++) { RoleLevelStatisticInfo info = infos[j] as RoleLevelStatisticInfo; counts[j] = info.Counts[i]; levels[j] = info.Level; } BarItem barItem = graphPane.AddBar(roleSexNames[i], levels, counts, Colors[i]); barItem.Bar.Fill = new Fill(Colors[i]); } } else if (_chartType == ChartType.Line) { double[] counts = new double[infos.Length]; double[] levels = new double[infos.Length]; for (int i = 0; i < RoleSexCount; i++) { for (int j = 0; j < infos.Length; j++) { RoleLevelStatisticInfo info = infos[j] as RoleLevelStatisticInfo; counts[j] = info.Counts[i]; levels[j] = info.Level; } LineItem lineItem = graphPane.AddCurve(roleSexNames[i], levels, counts, Colors[i], (showSymbol ? WebConfig.GraphSymbols[i] : SymbolType.None)); } } graphPane.AxisChange(g); } } } }
private ICollection CreateDataSource(SqlResult result) { try { DataTable dataTable = new DataTable(); DataRow dataRow; dataTable.Columns.Add(new DataColumn("Name", typeof(String))); dataTable.Columns.Add(new DataColumn("Type", typeof(String))); dataTable.Columns.Add(new DataColumn("Leader", typeof(String))); dataTable.Columns.Add(new DataColumn("NodeGUID", typeof(String))); dataTable.Columns.Add(new DataColumn("ChildCount", typeof(Int32))); dataTable.Columns.Add(new DataColumn("ServerId", typeof(Int32))); dataTable.Columns.Add(new DataColumn("RoleNameEncoded", typeof(String))); dataTable.Columns.Add(new DataColumn("ViewParent", typeof(String))); result.SetFieldType(new SqlDataType[]{ SqlDataType.String, SqlDataType.String, SqlDataType.Int32, SqlDataType.String, SqlDataType.Int32, SqlDataType.String }); object[] record; while ((record = result.ReadRecord()) != null) { dataRow = dataTable.NewRow(); dataRow[0] = record[0] as string; string typeText = string.Empty; switch ((int)record[2]) { case 2: typeText = StringDef.Clan; break; case 3: typeText = StringDef.Seigneur; break; case 4: typeText = StringDef.Nation; break; } dataRow[1] = typeText; dataRow[2] = record[1] as string; dataRow[3] = record[3] as string; dataRow[4] = (int)record[4]; dataRow[5] = ServerDropDownList.SelectedServerId; dataRow[6] = Server.UrlEncode(record[1] as string); string parentGuid = record[5] as string; if (parentGuid != null && parentGuid.Length != 0) { dataRow[7] = string.Format("<a href='../GameInfo/ClanMemberStatistic.aspx?serverId={0}&nodeGuid={1}' target='_blank' >{2}</a>", ServerDropDownList.SelectedServerId, parentGuid, StringDef.OrganizationInfo); } else { dataRow[7] = StringDef.NotAvailable; } dataTable.Rows.Add(dataRow); } return new DataView(dataTable); } catch (Exception) { return null; } }