closeDrawers.InList< short >(2, 4)>>>>
>>>> if (startTime > defaultDate && endTime > defaultDate) >>>> { >>>> whereClause.AppendLine(" AND date_time between @StartTime and @EndTime"); >>>> sqlCommand.Parameters.Add("@StartTime", SqlDbType.DateTime).Value = startTime; >>>> sqlCommand.Parameters.Add("@EndTime", SqlDbType.DateTime).Value = endTime; >>>> }>>>>
>> if (closeDrawers.InList<short>(2, 4)) >> { >> DateTime defaultDate = Functions.DTSqlMinDate; >> sqlStatement.AppendLine("salespoint = @Salespoint"); >> sqlCommand.Parameters.Add("@Salespoint", SqlDbType.Char, 6).Value = closeSalespoint.PadRight(6); >> if (startTime > defaultDate && endTime > defaultDate) >> { >> sqlStatement.AppendLine(" AND date_time between @StartTime and @EndTime"); >> sqlCommand.Parameters.Add("@StartTime", SqlDbType.DateTime).Value = startTime; >> sqlCommand.Parameters.Add("@EndTime", SqlDbType.DateTime).Value = endTime; >> } >> if (startTime > defaultDate && endTime == defaultDate) >> { >> sqlStatement.AppendLine(" AND date_time>= @StartTime"); >> sqlCommand.Parameters.Add("@StartTime", SqlDbType.DateTime).Value = startTime; >> } >> if (startTime == defaultDate && endTime > defaultDate) >> { >> sqlStatement.AppendLine(" AND date_time <= @EndTime"); >> sqlCommand.Parameters.Add("@EndTime", SqlDbType.DateTime).Value = endTime; >> } >> }Did you miss out some "else"'s ? Would this work:
if (endTime == defaultDate) endTime = DateTime.MaxValue; >sqlStatement.AppendLine("salespoint = @SalesPoint AND date_time between @StartTime and @EndTime"); >sqlCommand.Parameters.Add("@StartTime", SqlDbType.DateTime).Value = startTime; >sqlCommand.Parameters.Add("@EndTime", SqlDbType.DateTime).Value = endTime;or will it be less efficient on the SQL side ?