C# 如何使用C在If语句中使用多个运算符#

C# 如何使用C在If语句中使用多个运算符#,c#,asp.net,C#,Asp.net,我想在if语句中使用多个运算符,如=、>、&&等。如果(strAuthReqDate==null&&strDate

我想在if语句中使用多个运算符,如=、>、&&等。如果(strAuthReqDate==null&&strDate 这是我的密码:

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();
        }
    }
 }
foreach(GridView1.Rows中的GridViewRow gr)
{
复选框cb=(复选框)gr.FindControl(“chkItem”);
如果(cb.选中)
{
//字符串strID=gr.Cells[0]。文本;
字符串strExpectedSubDate=gr.Cells[3]。文本;
字符串strAuthReqDate=gr.Cells[8]。文本;
字符串strDate=Convert.ToString(System.DateTime.Now);
if(strAuthReqDate==null&&strDate
您的代码比较的是文本日期,而不是实际日期。您需要比较DateTime对象,它才能像您期望的那样工作

您的代码比较文本日期,而不是实际日期。您需要比较DateTime对象,它才能像您期望的那样工作

这是因为strDate和strExpectedSubDate是字符串。所以不能使用小于运算符比较它们,因为strDate和strExpectedSubDate是字符串。因此,您不能使用小于运算符来比较它们

请尝试使用此代码来比较日期

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)
{
}
DateTime-strExpectedSubDate=DateTime.ParseExact(gr.Cells[3]。Text,dateformat);
DateTime strAuthReqDate=DateTime.ParseExact(gr.Cells[8]。文本,日期格式);
DateTime strDate=System.DateTime.Now;
if(strAuthReqDate==null&&strDate
尝试使用此代码比较日期

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)
{
}
DateTime-strExpectedSubDate=DateTime.ParseExact(gr.Cells[3]。Text,dateformat);
DateTime strAuthReqDate=DateTime.ParseExact(gr.Cells[8]。文本,日期格式);
DateTime strDate=System.DateTime.Now;
if(strAuthReqDate==null&&strDate
首先,
单元格[i]。文本
从不为空,因此您应该使用
字符串。IsNullOrWhiteSpce
或者更好,尝试将其转换为
日期时间

您不能比较字符串并期望它们被视为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();
        }
    }
}
DateTime-ExpectedSubDate;
字符串strExpectedSubDate=gr.Cells[3]。文本;
if(DateTime.TryParse(strExpectedSubDate,out ExpectedSubDate))
{
日期时间;
字符串strAuthReqDate=gr.Cells[8]。文本;
如果(!DateTime.TryParse(strAuthReqDate,out AuthReqDate))
{
if(DateTime.Now
首先,
单元格[i]。文本
从不为空,因此您应该使用
字符串。IsNullOrWhiteSpce
或者更好,尝试将其转换为
日期时间

您不能比较字符串并期望它们被视为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();
        }
    }
}
DateTime-ExpectedSubDate;
字符串strExpectedSubDate=gr.Cells[3]。文本;
if(DateTime.TryParse(strExpectedSubDate,out ExpectedSubDate))
{
日期时间;
字符串strAuthReqDate=gr.Cells[8]。文本;
如果(!DateTime.TryParse(strAuthReqDate,out AuthReqDate))
{
if(DateTime.Now
看起来不错。问题主体是什么?您正在进行字符串比较,而不是日期比较。您希望
strExpectedSubDate
采用什么格式?这两个字段都是日期字段。你能给我举个例子吗?看起来不错。问题主体是什么?您正在进行字符串比较,而不是日期比较。您希望
strExpectedSubDate
采用什么格式?这两个字段都是日期字段。你能给我看看Mohamed的例子吗?我需要这样修改它:DateTime strExpectedSubDate=gr.Cells[3].Text;DateTime strAuthReqDate=gr.Cells[8]。文本;您将需要转换文本,请参见此解决方案:那么我是否需要这样更改:DateTime strExpectedSubDate=gr.Cells[3].text;DateTime strAuthReqDate=gr.Cells[8]。文本;您将需要转换您的文本,请参阅此解决方案:我遇到了一个错误,我认为需要删除日期中的非工作时间部分。它在字段中同时显示日期和时间,因此我如何才能只显示日期,因为strExpectedSubDate只显示日期。感谢帮助您在网格中只显示较短的日期,我需要查看将记录添加到网格中的代码。一般来说,你需要在某个地方设置日期格式。另外,请按照emartel的建议查看中的答案。我遇到了一个错误,我认为需要删除日期中的非工作时间部分。它在字段中同时显示日期和时间,因此我如何才能只显示日期,因为strExpectedSubDate只显示日期。感谢帮助您在网格中只显示较短的日期,我需要查看将记录添加到网格中的代码。一般来说,您需要在某个地方设置日期格式。还可以按照emartel的建议查看中的答案。