簡體   English   中英

如何使用C#在If語句中使用多個運算符

[英]How to use more than one Operator in an If Statement using C#

我想在if語句中使用=,>,&&等多個運算符。 如果(strAuthReqDate == null && strDate <strExpectedSubDate),則我只想在此條件為true時發送電子郵件。 所以我認為我的“小於運算符”是錯誤的,請讓我知道我在這里做錯了什么。 謝謝

這是我的代碼:

foreach (GridViewRow gr in GridView1.Rows)
{
    CheckBox cb = (CheckBox)gr.FindControl("chkItem");
    if (cb.Checked)
    {
        // string strID = gr.Cells[0].Text;
        string strExpectedSubDate = gr.Cells[3].Text;
        string strAuthReqDate = gr.Cells[8].Text;
        string strDate = Convert.ToString(System.DateTime.Now);
        if (strAuthReqDate == null && strDate < strExpectedSubDate)
        {
            send email();
        }
    }
 }

嘗試使用此代碼比較日期

DateTime strExpectedSubDate = DateTime.ParseExact(gr.Cells[3].Text, dateformat);
DateTime strAuthReqDate = DateTime.ParseExact(gr.Cells[8].Text, dateformat);
DateTime strDate = System.DateTime.Now;
if (strAuthReqDate == null && strDate < strExpectedSubDate)
{
}

首先, Cells[i].Text永遠不會為null,因此您應該使用String.IsNullOrWhiteSpce或什至更好,請嘗試將其String.IsNullOrWhiteSpce轉換為DateTime

您無法比較字符串,並且不能期望將它們像DateTimes一樣對待,C#不是VB6。 因此,首先將它們轉換為Datetimes:

DateTime ExpectedSubDate;
string strExpectedSubDate = gr.Cells[3].Text;
if(DateTime.TryParse(strExpectedSubDate, out ExpectedSubDate))
{
    DateTime AuthReqDate;
    string strAuthReqDate = gr.Cells[8].Text;
    if(!DateTime.TryParse(strAuthReqDate, out AuthReqDate))
    {
        if(DateTime.Now < ExpectedSubDate)
        {
            SendMail();
        }
    }
}

您的代碼比較文本日期,而不是實際日期。 您需要比較DateTime對象以使其按預期工作!

這是因為strDate和strExpectedSubDate是字符串。 因此,您不能使用小於運算符來比較它們

暫無
暫無

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

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