//Gettign error while creating chart///how to create ms chart based on button request and sql query data in c#?
Hi,
What i required: I have 2 text boxes for the "From Date" to "To date" and a button, when i press the button it should display the chart based on the textbox ranges and sql query. I have some tables from which i taking an input. I need to draw map between (severity and Actual) and (severity and Target) the result of that query is :
Severity Target Actual
TS2-CDMA 81 14
TS2-iDEN 62 28
TS1-CDMA 80 61
TS1-iDEN 80 82
I am getting error at the below point and also not sure whether i ill get desired results if executed good. Please help me it's urgent.
error i am getting :
Unable to cast object of type 'System.Object[]' to type 'System.IConvertible'.
where :
for (int pointIndex = 0; pointIndex < rowList.Count; pointIndex++)
{
plotY = Convert.ToDouble(rowList[pointIndex]);
}
I am using below code.
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click1(object sender, EventArgs e)
{
Chart1.Series["Series1"].ChartType = SeriesChartType.Column;
Chart1.Series["Series1"]["DrawingStyle"] = "Emboss";
Chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = false;
Chart1.Series["Series1"].IsValueShownAsLabel = true;
FillData();
}
private void FillData()
{
con.Open();
SqlDataReader myReader = null;
string sqlquery1 = String.Format(@"select ID.Severity ,tv.Target, Actual=COUNT(No.TicketNumber)*100/(select COUNT(TicketNumber)from tbl_NewOrderInfo) from tbl_NewOrderInfo NO inner join tbl_IssueDetail ID on ID.TicketNumber=NO.TicketNumber inner join tbl_TargetValue tv on ID.Severity=tv.Severity where NO.SLA='Met' and ID.EventStartTime between '"+TextBox1.Text+"' and '"+TextBox2.Text+"' group by ID.Severity ,tv.Target ",con) ;
SqlCommand myCommand1 = new SqlCommand(sqlquery1, con);
myReader = myCommand1.ExecuteReader();
myReader.Read();
ArrayList rowList = new ArrayList();
while (myReader.Read())
{
object[] values = new object[myReader.FieldCount];
myReader.GetValues(values);
rowList.Add(values);
}
double plotY = 0;
if (Chart1.Series["Series1"].Points.Count > 0)
{
plotY = Chart1.Series["Series1"].Points[Chart1.Series["Series1"].Points.Count - 1].YValues[0];
}
for (int pointIndex = 0; pointIndex < rowList.Count; pointIndex++)
{
plotY = Convert.ToDouble(rowList[pointIndex]);
Chart1.Series["Series1"].Points.AddY(plotY);
}
Chart1.Series["Series1"].XValueMember = "Severity";
Chart1.Series["Series1"].YValueMembers = "Actual";
Chart1.DataBind();
con.Close();