簡體   English   中英

如何在將字符串提供給Convert.DateTime()之前檢查字符串的格式

[英]How to check format of a string before feeding it to Convert.DateTime()

我有一個LINQ查詢

rpt = base.Session.QueryOver<Report>(() => rptAlias).
                                  JoinAlias(() => rptAlias.ReportStatus, () => statusAlias).
                                  JoinAlias(() => rptAlias.Patient, () => patAlias).Left.JoinAlias(() => rptAlias.SoapNotes, () => soapAlias).
                                  JoinAlias(() => patAlias.User, () => usrAlias).Where
                                  (() => (usrAlias.FirstName.IsLike(data, MatchMode.Anywhere)
                                  || usrAlias.LastName.IsLike(data, MatchMode.Anywhere) || usrAlias.Email.IsLike(data, MatchMode.Anywhere) || (patAlias.DateOfBirth.Date)==(Convert.ToDateTime(data)) ||
                                 (patAlias.MedNexusId.IsLike(data, MatchMode.Anywhere) || patAlias.MedNexusId == null)) && usrAlias.IsDeleted == false
                                  && rptAlias.IsDeleted == false && rptAlias.IsNormal.IsIn(lstIsNormal)
                                  && statusAlias.Id.IsIn(lstSearch)
                                  )
                                  .OrderBy(() => usrAlias.LastName).Desc.OrderBy(() => rptAlias.Id).Asc
                                 .Skip(pageNumber * pageSize)
                                 .Take(pageSize)
                                 .List<Report>();

在這里,您必須已經注意到一個變量數據,現在的問題是它包含我們在視圖中的文本框中輸入的內容,因此它可能包含1.First Name 2.Last Name 3.Id 4.Email Id 5.Date of date

或最壞的情況是它也可以為null,因此當它包含出生日期時一切都很好,但在其他情況下,數據的格式不正確,無法作為參數傳遞給Convert.ToDateTime並且我得到了異常。

所以我的問題是如何預先檢查數據格式是否正確?

您應該使用DateTime.TryParse

創建查詢(這是一件好事)之前,您將需要分析字符串-確保首先輸入正確,然后再處理它。

嘗試這個 :

    DateTime myDt;
    bool parsed = DateTime.TryParseExact(date,"d/M/yyyy",null,out myDt);
    if(parsed) DoSomething;

實際上,DateTime.TryParseExact的工作原理是采用Date模板,您在此處將其視為“ d / M / yyyy”,並嘗試匹配字符串,例如“ 12/03/1902”。 在此處查找更多信息: http : //msdn.microsoft.com/zh-cn/library/ms131044(v=vs.110).aspx

您也可以使用DateTime.TryParse

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM