sql >> データベース >  >> RDS >> Sqlserver

X軸の関連する間隔にASP.NET縦棒グラフの列を広げる方法は?

    目的の結果に合わせて変更された元の ASPX を以下に示します。基本的に、主要なグリッド間隔をスコア範囲と同じにし、各 XValue を作成する必要があります 各範囲の中点になります。また、列がギャップを完全に埋めるようにするには、カスタム プロパティ PointWidth=1 を設定する必要があります。 。

    ASPX:

           <asp:Chart ID="Chart2" runat="server"  BackColor="DarkSlateBlue" BackGradientStyle="LeftRight"  
           BorderlineWidth="0" Height="440px" Palette="SeaGreen" PaletteCustomColors="24, 0, 0"  
           Width="560px" BorderlineColor="128, 128, 255" OnLoad="Chart2_Load">
    
                <Titles>
                    <asp:Title Name="DefaultTitle" Font="Trebuchet MS, 15pt, style=Bold"
                               Text = "Students per Total Score Achieved" />
                </Titles>
                <%-- <Legends>
                         <asp:Legend Name="DefaultLegend" Enabled="True" Docking="Top" />
                </Legends>--%>
    
                <Series>
                    <asp:Series Name="Series1" YValuesPerPoint="1" CustomProperties="PointWidth=1">
                        <Points>
                            <asp:DataPoint Color="GreenYellow" XValue="15" YValues="25" />
                            <asp:DataPoint Color="255, 255, 128" XValue="25" YValues="15" />
                            <asp:DataPoint Color="0, 192, 192" XValue="35" YValues="10" />
                            <asp:DataPoint Color="Khaki" XValue="45" YValues="35" />
                        </Points>
                    </asp:Series>
                </Series>
                <ChartAreas>
                    <asp:ChartArea Name="ChartArea1" >
                        <AxisY Title="No of Students ">
                            <MajorGrid LineColor="DarkGray" LineDashStyle="Dot" />
                        </AxisY>
                        <AxisX Title="Score Achieved" Minimum="0" Enabled="True">
                            <MajorGrid Interval="10" IntervalOffset="Auto" IntervalOffsetType="Number" IntervalType="Number" LineColor="DarkGray" LineDashStyle="Dot" />
                            <MajorTickMark Interval="10" IntervalOffset="Auto" IntervalOffsetType="Number" IntervalType="Number" />
                        </AxisX>
                        <AxisY2>
                            <LabelStyle TruncatedLabels="True" />
                        </AxisY2>
                    </asp:ChartArea>
                </ChartAreas>
            </asp:Chart>
    

    編集: 各ポイントの色は、aspx ファイルで明示的に割り当てられていることに注意してください。コレクションから事前に定義された色を使用するか、次のようにランダムな色を生成することにより、コード ビハインドで同じことを行うことができます:

    Random r = new Random();
    foreach (DataPoint dp in Chart2.Series[0].Points)
        dp.Color = Color.FromArgb(255, r.Next(100, 255), r.Next(100, 255), r.Next(100, 255));
    

    編集 2: これはまさに私のコードが今どのように見えるかです:

    ASPX:

       <asp:Chart ID="Chart2" runat="server"  BackColor="DarkSlateBlue" BackGradientStyle="LeftRight"  
       BorderlineWidth="0" Height="440px" Palette="SeaGreen" PaletteCustomColors="24, 0, 0"  
       Width="560px" BorderlineColor="128, 128, 255" OnLoad="Chart2_Load">
    
            <Titles>
                <asp:Title Name="DefaultTitle" Font="Trebuchet MS, 15pt, style=Bold"
                           Text = "Students per Total Score Achieved" />
            </Titles>
            <%-- <Legends>
                     <asp:Legend Name="DefaultLegend" Enabled="True" Docking="Top" />
            </Legends>--%>
    
            <Series>
                <asp:Series Name="Series1" YValuesPerPoint="1" CustomProperties="PointWidth=1">
                </asp:Series>
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1" >
                    <AxisY Title="No of Students ">
                        <MajorGrid LineColor="DarkGray" LineDashStyle="Dot" />
                    </AxisY>
                    <AxisX Title="Score Achieved" Minimum="0" Enabled="True">
                        <MajorGrid Interval="10" IntervalOffset="Auto" IntervalOffsetType="Number" IntervalType="Number" LineColor="DarkGray" LineDashStyle="Dot" />
                        <MajorTickMark Interval="10" IntervalOffset="Auto" IntervalOffsetType="Number" IntervalType="Number" />
                    </AxisX>
                    <AxisY2>
                        <LabelStyle TruncatedLabels="True" />
                    </AxisY2>
                </asp:ChartArea>
            </ChartAreas>
        </asp:Chart>
    

    CS:

    protected void Chart2_Load(object sender, EventArgs e)
    {
        Chart2.Visible = true;
        /*
        SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Con"].ConnectionString);
    
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = connection;
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = "sp_range";
        cmd.Parameters.AddWithValue("@sub_code", DropDown_Subjects.SelectedItem.Value);
    
        //  cmd.ExecuteNonQuery();
    
        connection.Open();
        SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        */
    
        Chart2.DataSource = dt;
    
        Chart2.Series[0].XValueMember = "Score_Achieved";
        Chart2.Series[0].YValueMembers = "No_of_Students";
    
        Chart2.DataBind();
    
        Random r = new Random();
        foreach (DataPoint dp in Chart2.Series[0].Points)
            dp.Color = Color.FromArgb(255, r.Next(100, 255), r.Next(100, 255), r.Next(100, 255));
    
        //connection.Close();
    }
    




    1. エラー:ORA-01704:文字列リテラルが長すぎます

    2. MySQL-構造は同じだがデータが異なる複数のテーブルからデータを選択する

    3. PL / SQL SQL*Plus文は無視されます

    4. データソースが接続の確立を拒否しました、サーバーからのメッセージ:接続が多すぎます