0

ifステートメントで=、>、&&などの複数の演算子を使用したいと思います。(strAuthReqDate == null && strDate <strExpectedSubDate)の場合にのみ、この条件が真の場合にメールを送信したいと思います。だから私は私の「演算子未満」が間違っていると思いますplsは私がここで間違っていることを私に知らせてください。ありがとう

これが私のコードです:

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();
        }
    }
 }
4

4 に答える 4

2

このコードを使用して日付を比較してみてください

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)
{
}
于 2012-11-11T22:44:20.437 に答える
2

まず、Cells[i].Textは決してnullではないので、代わりにString.IsNullOrWhiteSpceそれを使用するか、さらに良い方法でキャストしてみてください。DateTime

文字列を比較して、それらがDateTimesのように扱われることを期待することはできません。C#はVB6ではありません。したがって、最初にそれらを日時に変換します。

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();
        }
    }
}
于 2012-11-11T22:51:00.447 に答える
1

コードは、実際の日付ではなく、テキストの日付を比較します。期待どおりに機能するには、DateTimeオブジェクトを比較する必要があります。

于 2012-11-11T22:38:02.110 に答える
1

これは、strDateとstrExpectedSubDateが文字列であるためです。したがって、未満の演算子を使用してそれらを比較することはできません

于 2012-11-11T22:38:53.520 に答える