我想将数据库中的数据用Bar的图形表示出来,, 以前我是用Excel做的,先将数据库中的值取到excel中,然后用VBA将图形画出来, 不过这样好想太麻烦了, 请问有没有别的方法用C# 画 Bar 图?????????? 谢谢啦。
解决方案 »
- 关于dataview的RowFilter问题
- 进程为什么会超过最大进程数??
- c#中数据库access中查询日期段
- 同一个东西的程序代码,为何有不同了
- Report问题,高分求助
- 杀进程的问题!!!!求教各位大神
- 800分求.net平台实现网上审批的技术方案
- 关于内码转换的问题!请各位多多指点!
- [醒目]DbUtility alpha1 发布
- 我做了一个多线程下载程,可以有问题,关于内存,请大家帮忙
- 关于vs2005,求解!!!!!!!!!!!!!!!!!!!
- 为什么SendMessage(hWndControl, BM_SETCHECK, 1, 0)和SendMessage(hWndControl, BM_GETCHECK, 0, 0)无效
http://dotnet.aspx.cc/article/221bc601-1a1b-4e1f-883d-04b043659703/read.aspx
http://blog.csdn.net/tjvictor/archive/2006/11/25/1414011.aspx
中柱形圖。
//Graphics g = this.CreateGraphics();
//********************************************
//*************在背景图上绘制*****************
//pic = new PictureBox();
//pic.Size = new Size(this.ClientSize.Width, ClientSize.Height);
//pic.Location = new Point(0, 0);
//pic.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; map = new Bitmap(@"./Sunset.jpg"); // map = new Bitmap(this.ClientSize.Width, ClientSize.Height); g = Graphics.FromImage(map);
// g.Clear(Color.Black);
this.BackgroundImage = map;
//pic.BackgroundImage = map;
//pic.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
//this.Controls.Add(pic);
//********************************************
DataTable dtl = new DataTable();
string ElementName = "";
DaoCa daocha = new DaoCa(g);
Pen myPen = new Pen(Color.FromArgb(100,100,100), 6);
Font drawFont = new Font("Arial", 8);
DataTable dt = new DataTable(); //定义datatable
int xx1 = 0, xx2 = 0, yy1 = 0, yy2 = 0, xx = 0, dd,ll=0;
dt = db.createDataTable("select * from ElementList ");//通过DB类进行数据库的查询返回datatable
int asd = dt.Rows.Count;
for (int i = 0; i < asd; i++)
{
xx1 = System.Convert.ToInt16(dt.Rows[i][4].ToString());
yy1 = System.Convert.ToInt16(dt.Rows[i][5].ToString());
xx2 = System.Convert.ToInt16(dt.Rows[i][6].ToString());
yy2 = System.Convert.ToInt16(dt.Rows[i][7].ToString());
xx = System.Convert.ToInt16(dt.Rows[i][8]);
dd = System.Convert.ToInt16(dt.Rows[i][1]);
ll=System.Convert.ToInt16(dt.Rows[i]["eloprtype"]);
//ElementName = dt.Rows[i]["eleactid"].ToString();//获取元素名字bjg
//string sqlstr = "select a.*,b.Btype from dbo.ElementList a ";
// sqlstr += "inner join humpstation.dbo.RailBranch b ";
// sqlstr += "on b.BRelate=a.eleactid where b.BElementID='" + ElementName + "'";
if (xx2 == 0 && yy2 == 0 && dd == 5)
{
g.DrawString(dt.Rows[i][2].ToString(), drawFont, Brushes.Green, xx1, yy1);//在背景图上填写字符串 }
if (xx2 == 0 && yy2 == 0 && xx == 372)
{
g.FillEllipse(Brushes.Green, xx1, yy1, 12, 12);//画信号机 } if (xx2 == 0 && yy2 == 0 && xx == 20)
{
// g.FillEllipse(Brushes.Red, xx1, yy1, 12, 12);//画道岔
}
else
{
if(ll==61 || ll== 62||ll==63)
{
//g.DrawLine(Pens.Green, xx2, yy2, xx1, yy1);
g.DrawRectangle(Pens.Green, xx1, yy1-3, (xx2 - xx1)/2, 6);
g.DrawRectangle(Pens.Green, (xx2+xx1)/2, yy1-3, (xx2 - xx1) / 2, 6);
}
else
if (xx1 != 0 && yy2 != 0)
g.DrawLine(myPen, xx2, yy2, xx1, yy1);//画直线
} }
dt = db.createDataTable("select * from ElementList ");
// sqlconn
for (int i = 0; i < asd; i++)
{
xx1 = System.Convert.ToInt16(dt.Rows[i]["elstartx"].ToString());
yy1 = System.Convert.ToInt16(dt.Rows[i]["elstarty"].ToString());
xx2 = System.Convert.ToInt16(dt.Rows[i]["elendx"].ToString());
yy2 = System.Convert.ToInt16(dt.Rows[i]["elendy"].ToString());
// xx = System.Convert.ToInt16(dt.Rows[i][8]);
// dd = System.Convert.ToInt16(dt.Rows[i][1]);
ll = System.Convert.ToInt16(dt.Rows[i]["eloprtype"]);
ElementName = dt.Rows[i]["eleactid"].ToString();//获取元素名字bjg
if(ll==200)
{
string sqlstr = "select a.*,b.Btype from dbo.ElementList a ";
bool stype = false;
sqlstr += "inner join humpstation.dbo.RailBranch b ";
sqlstr += "on b.BRelate=a.eleactid where b.BElementID='" + ElementName + "'";
sda =new SqlDataAdapter(sqlstr,sqlconn);
sda.Fill(dtl);
if (dtl.Rows.Count > 0)
{
for (int j = 0; j < dtl.Rows.Count; j++)
{
xx2 = System.Convert.ToInt16(dtl.Rows[j]["elstartx"].ToString());
yy2 = System.Convert.ToInt16(dtl.Rows[j]["elstarty"].ToString());
stype = (bool)dtl.Rows[j]["Btype"];
if(yy1!=yy2)
daocha.MoveTo(new PointF(xx1 + 6, yy1 + 6), new PointF(xx2 + 6, yy2 + 6), !stype, true, Brushes.Red);
} } }
dtl.Clear();
}
dog 0.7 1.3 1.9 2.1
house 1.3 0.6 0.9 0.8 以上的数据有四行,,在画柱形图的时候,,我想第一行用一种颜色,第二行用另一种颜色,柱的长度由相应的大小来决定,又谁有相关的程序吗?