积极答复者
dateTimePicker1.value=new DateTime(int类型,int类型,int类型)怎么提示错误

问题
-
新手,遇到了一个问题。求高人解答啊,谢谢了、我是从数据库读取一个DateTime类型数据然后以此值更改dateTimePiecker1的value。
当使用以下代码
using(DBBaoGaoEntities baoGaoShiTi = new DBBaoGaoEntities())
{
BaoGaoXinXi xinBaoGaoXinXi = new BaoGaoXinXi();//新建实体中对象
//找到符合条件的报告编号
var baoGaoXinXiZong=from c in baoGaoShiTi.BaoGaoXinXi
select c;
foreach (var hangZhi in baoGaoXinXiZong)
{
if (hangZhi.报告编号==bianHao.SelectedValue.ToString())
{
xinBaoGaoXinXi=hangZhi;
}
}int year1 = xinBaoGaoXinXi.报告日期.Year;
int month2 = xinBaoGaoXinXi.报告日期.Month;
int day2 = xinBaoGaoXinXi.报告日期.Day;
dateTimePicker.value=new DateTime(year1,month2,day2);}
然后编译运行的时候提示以下错误:
答案
-
拜托了,求教具体方法啊.
int year1 = xinBaoGaoXinXi.报告日期.Year; int month2 = xinBaoGaoXinXi.报告日期.Month; int day2 = xinBaoGaoXinXi.报告日期.Day; if(year1==0001) { dateTimePicker.value=new DateTime(year1,month2,day2,12,0,0); } else if(year1==9999) { dateTimePicker.value=new DateTime(year1,month2,day2,11,59,59); } else { dateTimePicker.value=new DateTime(year1,month2,day2,0,0,0); }
- 已标记为答案 1060548017 2012年5月30日 12:47
- 取消答案标记 1060548017 2012年5月30日 12:48
- 已标记为答案 1060548017 2012年5月30日 14:25
全部回复
-
DateTime的日期有一定限制的DateTime 值类型表示值范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间
因此您必须保证year,month和time只能在上述范围之内。看错误提示,你的time貌似出问题了(0001/01/01 00:00:00,不支持!)
建议这样做(如果是0001年或者9999年,除了格式化年月日,还要初始化time——时分秒)。
-
我用标记检测过了,xinBaoGaoXinXi.报告日期 时间为2010.1.10日。而且我测试了老长时间,发现dateTimePicker.value=new DateTime(year1,month2,day2); 里面参数要是使用变量就出现这个问题、而用dateTimePiker.value=new DateTime(2010,1,10);确能正确设置。
现在问题就在这里,都不知道怎么弄了。呵呵,非常感谢您的解答哈、
2010.01.10应该是可以的啊,我说过了——请满足DateTime类型的各个参数。请注意用if判断特殊日期(比如0001或者9999年的时候)。
具体请参考相关DateTime:http://msdn.microsoft.com/zh-cn/library/system.datetime(v=vs.80).aspx
-
拜托了,求教具体方法啊.
int year1 = xinBaoGaoXinXi.报告日期.Year; int month2 = xinBaoGaoXinXi.报告日期.Month; int day2 = xinBaoGaoXinXi.报告日期.Day; if(year1==0001) { dateTimePicker.value=new DateTime(year1,month2,day2,12,0,0); } else if(year1==9999) { dateTimePicker.value=new DateTime(year1,month2,day2,11,59,59); } else { dateTimePicker.value=new DateTime(year1,month2,day2,0,0,0); }
- 已标记为答案 1060548017 2012年5月30日 12:47
- 取消答案标记 1060548017 2012年5月30日 12:48
- 已标记为答案 1060548017 2012年5月30日 14:25