从一个DataRow检索日期时间值(C#) [英] Retrieving a DateTime value from a DataRow (C#)
问题描述
我怎样才能获得的DateTime
在C#中的行值,当前code是给我的错误
任何帮助是AP preciated,数据从数据库中取得进展进来:
的foreach(在ds.Tables的DataRow R [O] .Rows)
{
串签子code = R [PRD-CDE]的ToString()。
统计code = R [STAT]的ToString()。
日期时间firstIssueDate =(DateTime的)(R [FISS]);
日期时间endIssueDate =(DateTime的)(R [EISS]);
如果(endIssueDate> DateTime.Now)
{ /*做一点事...*/}
其他{/ *用户无效... * /}
}
有在获得日期转换和收杆采用两种方法,谢谢大家的帮助
最终工作code片断:
的foreach(在ds.Tables的DataRow R [O] .Rows)
{
串签子code = R [PRD-CDE]的ToString(),统计code = R [STAT]的ToString()。
//为r?DateTime的>(FISS);
如果(R [FISS]!=的DBNull.Value)
{
日期时间firstIssueDate = Convert.ToDateTime(R [FISS]);
如果(R [EISS]!=的DBNull.Value)
{
日期时间endIssueDate = DateTime.Parse(:R [EISS]的ToString());
如果(endIssueDate> DateTime.Now)
{
这只是一个猜测,但如果相应类型在数据库中的日期时间,你能检查列可以为空?
如果这样,你可能需要做一次检查研究[列] ==的DBNull.Value
键,然后将它传递给一个可为空的日期时间?场。
或者更简单:
row.Field< DateTime的>?(列)
如果它不是,那么是的,Convert.ToDateTime()或别的东西应该这样做。
编辑:
我看你最后的code有,但有没有你想这样做任何机会:
日期时间? firstIssueDate = r.Field< DateTime的>?(费斯);
日期时间? endIssueDate = r.Field< DateTime的>(EISS);
如果(firstIssueDate.HasValue&安培;&安培; endIssueDate.HasValue)
{
firstIssueDate.Value //等等等等
endIssueDate.Value //等等等等
}
How can I get DateTime
value in C# from row, the current code is giving me error
any help is appreciated, the data is coming in from progress database:
foreach (DataRow r in ds.Tables[0].Rows)
{
string prodCode = r["PRD-CDE"].ToString();
statCode = r["STAT"].ToString();
DateTime firstIssueDate = (DateTime)(r["FISS"]);
DateTime endIssueDate = (DateTime)(r["EISS"]);
if(endIssueDate > DateTime.Now)
{ /*do some thing...*/}
else {/*user invalid...*/}
}
there are two ways used in getting date convert and pars, thank you all for the help
Final working Code snippet:
foreach (DataRow r in ds.Tables[0].Rows)
{
string prodCode = r["PRD-CDE"].ToString(),statCode = r["STAT"].ToString();
// r.<DateTime?>("FISS");
if (r["FISS"] != DBNull.Value)
{
DateTime firstIssueDate = Convert.ToDateTime(r["FISS"]);
if (r["EISS"] != DBNull.Value)
{
DateTime endIssueDate = DateTime.Parse(r["EISS"].ToString());
if (endIssueDate > DateTime.Now)
{
This is just a guess but if the corresponding type in the database is DateTime, could you check if the column is nullable?
If so you may want to do a check r["column"] == DBNull.Value
and then pass it to a nullable DateTime? Field.
Or even easier:
row.Field<DateTime?>("column")
If it isn't then yeah, Convert.ToDateTime() or something else should do it.
EDIT:
I see your final code there but is there any chance you want to do this:
DateTime? firstIssueDate = r.Field<DateTime?>("fiss");
DateTime? endIssueDate = r.Field<DateTime?>("eiss");
if (firstIssueDate.HasValue && endIssueDate.HasValue)
{
firstIssueDate.Value // blah blah
endIssueDate.Value // blah blah
}
这篇关于从一个DataRow检索日期时间值(C#)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!