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 ?