IDとSeverityの2 つの列があり、どちらもデータベース テーブルにデータ型 string があり、Severity 列には High、Medium、Low の値があります。Chart コントロールを追加し、SQL データ ソースを使用してそのデータを指定しましたが、Y 座標値は整数型でなければならないため、出力を取得できません。以下のようなチャートを生成し、すべての重大度レベルにパーセンテージ値を付ける必要があります。
コード:
private void GetChartData()
{
string cs = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection(cs))
{
con.Open();
SqlCommand cmd = new SqlCommand("SELECT ID, Severity FROM AMD", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
con.Close();
}
Chart1.Series[0].XValueMember = "Severity";
Chart1.Series[0].YValueMembers = "ID";
Chart1.Series[0].ChartArea = "ChartArea1";
Chart1.DataSource = dt;
Chart1.DataBind();
int high = 0, med = 0, low = 0;
string[] x = new string[dt.Rows.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
x[i] = dt.Rows[i][0].ToString();
//y[i] = dt.Rows[i][1].ToString();
if (dt.Rows[i][1].ToString().ToLower().Contains("high"))
{
high++;
}
else if (dt.Rows[i][1].ToString().ToLower().Contains("medium"))
{
med++;
}
else if (dt.Rows[i][1].ToString().ToLower().Contains("low"))
{
low++;
}
Chart1.Series[1].Points.DataBindXY(x, high);
}
}
これを達成するにはどうすればよいですか?ご案内ください...よろしくお願いします...
