MS chart 鼠标点在曲线上时间显示为 1899-12-30

Qipeng_liang 2012-11-08 10:04:43
大侠们,帮小弟一个忙:

我用MS chart 做了一个曲线图,此曲线图的数据从Access 数据库中获得

1:已定义了X轴显示格式如下,且X轴为 datetime 格式:
chart1.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "yyyy-MM-dd-HH:mm:ss";

2:下面是存往数据库时的语句(数据库中时间显示正确如: 2012-11-6 21:20:35):
System.DateTime currentTime = new DateTime();
currentTime = System.DateTime.Now;
string Date1 = currentTime.ToString();
string MySql1 = string.Format(@"insert into CHART(序号,日期,压力) values('{0}','{1}','{2}')", S1, Date1, Pressure);

string sql12 = "Select 日期,压力 From CHART"; 一开始用的这个语句
chart1.Series[0].Points.DataBindXY(myReader, "日期", myReader, "压力");
chart1.Series[0].ToolTip = "#VALX压力:#VALY(bar)"; 这个用于鼠标点在上面是显示X,Y轴信息,Y轴正确,可X轴怎么都是显示 1899-12-30 ...

后来看网上说从数据库中读出来的时间日期要进行格式化,我又换了下面语句还是不行:
string sql12 = "SELECT FORMAT(日期,'yyyy-MM-dd HH:mm:ss')AS 日期,压力 FROM CHART";



高手们帮帮忙啊,大概主题就是存在数据库中的时间是正确的,当我把时间读出来 让X轴显示信息时 日期怎么都是 1899-12-30...
...全文
317 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
清穆 2014-05-27
  • 打赏
  • 举报
回复
如果数据是一个一个来的,比如说是从数组里读的,那么怎么使得横坐标显示为时间格式呢?? chart1.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "yyyy-MM-dd-HH:mm:ss"; 使用了上边的语句,没想到竟然横坐标显示 "yyyy-MM-dd-HH:mm:ss"...
TDY258 2013-05-15
  • 打赏
  • 举报
回复
1142173804@qq.com 谢谢!
TDY258 2013-05-15
  • 打赏
  • 举报
回复
能不能给我发一个你的程序呢?
Qipeng_liang 2012-11-08
  • 打赏
  • 举报
回复
引用 7 楼 sinodzh 的回复:
chart1.Series[0].ToolTip = "压力:#VALY(bar)";
X 坐标呢?
sinodzh 2012-11-08
  • 打赏
  • 举报
回复
chart1.Series[0].ToolTip = "压力:#VALY(bar)";
Qipeng_liang 2012-11-08
  • 打赏
  • 举报
回复
大侠们,帮我看看呢...
Qipeng_liang 2012-11-08
  • 打赏
  • 举报
回复
数据库数据如下:


chart1.Series[0].ToolTip = "#VALX压力:#VALY(bar)"; 


我怀疑问题出在这句上了,因为显示在X轴上的时间是正确的,也是我数据库中的时间,当鼠标点在曲线上时如何正确显示改点的坐标呢?
Qipeng_liang 2012-11-08
  • 打赏
  • 举报
回复



string sql12 = "SELECT FORMAT(日期,'yyyy-MM-dd HH:mm:ss')AS 日期,压力 FROM CHART";
chart1.Series[0].Points.DataBindXY(myReader, "日期", myReader, "压力");
chart1.Series[0].ToolTip = "#VALX压力:#VALY(bar)";



贴了几句主要的语句,高手们帮忙看看啊,还有显示的图片,上面鼠标提示的地方 1899-12-30
心灵彩虹 2012-11-08
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/330079071
Qipeng_liang 2012-11-08
  • 打赏
  • 举报
回复
引用 1 楼 ssp2009 的回复:
读取的时候转为字符串试试。
string sql12 = "SELECT FORMAT(日期,'yyyy-MM-dd HH:mm:ss')AS 日期,压力 FROM CHART"; OleDbCommand mycmd = new OleDbCommand(sql12, connAccess); OleDbDataReader myReader = mycmd.ExecuteReader(); chart1.Series[0].Points.DataBindXY(myReader, "日期", myReader, "压力"); chart1.Series[0].ToolTip = "#VALX压力:#VALY(bar)"; Chart 绑定数据库,鼠标信息提示,就上面这几条语句; 你说把那个 日期 转成字符串吗?
快溜 2012-11-08
  • 打赏
  • 举报
回复
读取的时候转为字符串试试。
Qipeng_liang 2012-11-08
  • 打赏
  • 举报
回复 1
我程序中的定义了X轴显示格式如下,是string类型的
chart1.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "yyyy-MM-dd-HH:mm:ss";
而我在 Chart 属性中设置 XValueType 的属性还是 datetime 的,两个格式不一样,所以返回 null, 默认值就是1899-12-30... 只要把 XValueType 的属性改为string就好啦。
mecrtli 2012-11-08
  • 打赏
  • 举报
回复
你是怎么解决的呢
Qipeng_liang 2012-11-08
  • 打赏
  • 举报
回复
啊!问题解决喽,发分!

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧