(叶子,豆子..)帮帮看看mschart问题

li358871791 2011-09-01 03:57:15
我在使用微软的mschart控件做报表遇到个问题
比如我数据库只有两条记录
2010-10-10
2011-11-11
为什么mschart的x轴坐标会自动显示2010-10-10,,210-10-11....
怎么设置只显示dt的数据? 另外这个问题是mysql种出现的mssql就没问题很不解
...全文
138 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
li358871791 2011-09-02
  • 打赏
  • 举报
回复
谢谢叶子 问题解决 结贴给分
叶子 2011-09-01
  • 打赏
  • 举报
回复

DataTable dt = new DataTable();
dt.Columns.Add("DateValue", typeof(DateTime));
dt.Rows.Add("2010-10-20");
dt.Rows.Add("2011-07-28");

dt.Columns.Add("NewCol", typeof(string));
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["NewCol"] = Convert.ToDateTime(dt.Rows[i]["DateValue"].ToString()).ToString("yyyy-MM-dd");
}
dt.AcceptChanges();
Chart1.DataSource = dt;
Chart1.Series["Series1"].XValueMember = "NewCol";
/*
DateValue NewCol
2010-10-20 0:00:00 2010-10-20
2011-7-28 0:00:00 2011-07-28
*/
快溜 2011-09-01
  • 打赏
  • 举报
回复
时间类型转换为字符串
叶子 2011-09-01
  • 打赏
  • 举报
回复
第一种方式:在数据库中转成字符串试一下。
--例如这种:
select ltirm(convert(crdtm,date)) as crdtm from table;

第二种方式:在dt中直接格式处理
例如:
http://www.360doc.com/content/11/0114/17/2841512_86544711.shtml
li358871791 2011-09-01
  • 打赏
  • 举报
回复
叶子人了、? 先谢谢了
帮了我不少
li358871791 2011-09-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 maco_wang 的回复:]
引用 6 楼 li358871791 的回复:
叶子我知道原因了 在请教你下
我mysql存储过程里面
比如
select date(日期字段)as a from table
这样在数据库里面直接执行存储过程 a就是日期格式"yyyy-MM-dd"
但是一到程序里面调用a就会连时分秒也显示出来是什么原因额 ?
我只想要日期该怎么处理额?

我对MYSQL不熟悉,但是理论上你得到的……
[/Quote]
 select convert(crdtm,date)as crdtm from table;
+------------+
| crdtm |
+------------+
| 2010-10-20 |
| 2011-07-28 |
+------------+
2 rows in set

直接执行得到的结果就没有时分秒 但是程序里面一调用存储过程我跟踪的dt里面
crdtm字段就会有时分秒 是不是会自动给转化了?
叶子 2011-09-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 li358871791 的回复:]
叶子我知道原因了 在请教你下
我mysql存储过程里面
比如
select date(日期字段)as a from table
这样在数据库里面直接执行存储过程 a就是日期格式"yyyy-MM-dd"
但是一到程序里面调用a就会连时分秒也显示出来是什么原因额 ?
我只想要日期该怎么处理额?
[/Quote]
我对MYSQL不熟悉,但是理论上你得到的是时间类型,时间是有格式的,在给Chart1赋字段名后,可以设置格式。
时间格式不确定是怎么设置的,但是我经常设置小数点的位置。
Chart1.Series["Series3"].MarkerColor = Color.Blue;
Chart1.Series["Series3"].MarkerBorderColor = Color.Blue;
Chart1.Series["Series3"].MarkerStyle = MarkerStyle.Triangle;
Chart1.Series["Series3"].MarkerSize = 8;
Chart1.Series["Series3"].LabelFormat = "0.#";//类型这里。

你可以做一下相关调整。

你要先断点调试一下,看看存储过程的结果,dt的内容,判读是哪个步骤进行了格式转换,或是你强制换转一下格式。
li358871791 2011-09-01
  • 打赏
  • 举报
回复
叶子还在嘛 帮帮忙
li358871791 2011-09-01
  • 打赏
  • 举报
回复
叶子我知道原因了 在请教你下
我mysql存储过程里面
比如
select date(日期字段)as a from table
这样在数据库里面直接执行存储过程 a就是日期格式"yyyy-MM-dd"
但是一到程序里面调用a就会连时分秒也显示出来是什么原因额 ?
我只想要日期该怎么处理额?
叶子 2011-09-01
  • 打赏
  • 举报
回复


//数据库中的数据,当你得到dt后,把dt放到MSchart的DataSource就可以了
//这样就只得到dt的数据,而不是数据库中的数据了。
DataTable dt = new DataTable();
TestData tda = new TestData();
dt = tda.GetTestData();
Chart1.DataSource = dt;
li358871791 2011-09-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wxr0323 的回复:]
使用
[/Quote]
谢谢子夜额 这些我看过的 但是实在不知道为什么会出现那种问题
子夜__ 2011-09-01
  • 打赏
  • 举报
回复
teddy000 2011-09-01
  • 打赏
  • 举报
回复
mschart这东西,很少有人接触的嘛
CalvinR 2011-09-01
  • 打赏
  • 举报
回复

他们没在
你好像放错板块了?
他们经常在sql板块
mschart的资料很少

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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