Click here to Skip to main content
15,890,185 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Hi Pls help me to change color of each column in column chart

Below code works fine in only one color. I have 12 month. How to change the color of each month

Pls advice me

Thank you.
maideen

What I have tried:

<pre>    <script>
        var chartData; // globar variable for hold chart data
        google.load("visualization", "1", { packages: ["corechart"] });
        // Here We will fill chartData
        $(document).ready(function () {
            $.ajax({
                url: "Default.aspx/LoadTotalQR_Month",
                data: "",
                dataType: "json",
                type: "POST",
                contentType: "application/json; chartset=utf-8",
                success: function (data) {
                    chartData = data.d;
                },
                error: function () {
                    alert("Error loading data! Please try again.");
                }
            }).done(function () {
                // after complete loading data
                google.setOnLoadCallback(drawChart_C);
                drawChart_C();
            });
        });
        function drawChart_C() {
            var data = google.visualization.arrayToDataTable(chartData);
            var options = {
                title: "",
                pointSize: 5
            };
            var columnChart = new google.visualization.ColumnChart(document.getElementById('column-chart1'));
            columnChart.draw(data, options);
        }
    </script>



<WebMethod()>
    Public Shared Function LoadTotalQR_Month() As List(Of Object)
        Dim query As String = "SELECT SUM(AMOUNT) AS AMOUNT,MonthName,monthno FROM [dbo].[DP_Receipt_Head] " &
                              "WHERE YEARNO =  '" & Date.Now.Year & "' Group BY MonthName,monthno order by Monthno"
        Dim constr As String = ConfigurationManager.ConnectionStrings("ConnectString").ConnectionString
        Dim CharData_AREA As New List(Of Object)()
        CharData_AREA.Add(New Object() {"MonthName", "AMOUNT"})
        Using con As New SqlConnection(constr)
            Using cmd As New SqlCommand(query)
                cmd.CommandType = CommandType.Text
                cmd.Connection = con
                con.Open()
                Using sdr As SqlDataReader = cmd.ExecuteReader()
                    While sdr.Read()
                        CharData_AREA.Add(New Object() {sdr("MonthName"), sdr("AMOUNT")})
                    End While
                End Using
                con.Close()
                Return CharData_AREA
            End Using
        End Using
    End Function
Posted
Updated 16-Apr-20 22:40pm
Comments
Richard Deeming 16-Apr-20 7:33am    
Dim query As String = "SELECT SUM(AMOUNT) AS AMOUNT,MonthName,monthno FROM [dbo].[DP_Receipt_Head] " &
    "WHERE YEARNO =  '" & Date.Now.Year & "' Group BY MonthName,monthno order by Monthno"

Don't do it like that!

Whilst in this specific case you may be OK, using string concatenation to build your database queries will lead to SQL Injection[^].

Use a parameterized query instead.
Const query As String = "SELECT SUM(AMOUNT) AS AMOUNT, MonthName, monthno FROM [dbo].[DP_Receipt_Head] WHERE YEARNO = @YearNo GROUP BY MonthName, monthno ORDER BY monthno"

Using con As New SqlConnection(constr)
    Using cmd As New SqlCommand(query, con)
        cmd.Parameters.AddWithValue("@YearNo", Date.Today.Year)
        con.Open()
        Using sdr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
            While sdr.Read()
                CharData_AREA.Add(New Object() {sdr("MonthName"), sdr("AMOUNT")})
            End While
        End Using
    End Using
End Using

Everything you wanted to know about SQL injection (but were afraid to ask) | Troy Hunt[^]
How can I explain SQL injection without technical jargon? | Information Security Stack Exchange[^]
Query Parameterization Cheat Sheet | OWASP[^]
Maideen Abdul Kader 16-Apr-20 20:55pm    
ok Thanks for your reply.
What about the colors for each month? pls advice me

1 solution

This is explained in Google's documentation. Check out the documentation for any tool you're using first before asking in online fora. I've never used Google's ColumnChart object but found the documentation in under a minute. Here you go: Visualization: Column Chart  |  Charts  |  Google Developers[^]
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900