Reden Rodriguez Ответов: 1

Как фильтровать элементы(даты) в gridview с помощью datatable select


Я до сих пор не знаю, как правильно использовать этот код, этот код переведен из моего sql-запроса, но я не знаю, как правильно его закодировать с помощью datatable.выберите или есть какой-то альтернативный способ заставить это работать?



DataRow[] oDataRow;
DataTable oDatatable = webTrackLogic.loadGrid();

oDataRow = oDatatable.Select("DateReceived" + "#" + date1 +  "#" + "<=" + "#" + date2 + "#" + "AND" + "#" + date1 + "#" + ">=" + "#" + date2 + "#");

oDatatable = oDataRow.CopyToDataTable();
gridviewDetails.DataSource = oDatatable;
gridviewDetails.DataBind();


Что я уже пробовал:

я попробовал использовать это
"Date IN (#12/31/2008#, #1/1/2009#)"
но это мне ничего не дает.

1 Ответов

Рейтинг:
12

Dave Kreskowiak

Отладчик. Познакомьтесь с ним и научитесь им пользоваться. Это легко показало бы вам, что не так.

Посмотрите на созданный Вами запрос Select:

"DateReceived" + "#" + date1 +  "#" + "<=" + "#" + date2 + "#" + "AND" + "#" + date1 + "#" + ">=" + "#" + date2 + "#"
Использование конкатенации строк для построения запроса и неправильное его выполнение привели к следующей строке:
"DateReceived#date1#<=#date2#AND#date1#>=#date2#
Обратите внимание на отсутствие пробелов, отсутствие оператора сравнения после "DateReceived". Твое выражение лица не имеет никакого смысла. Вам также не нужна каждая маленькая часть строки, которую вы строите в своем собственном наборе кавычек.

Переработайте свой код, чтобы построить запрос за пределами .свойство Select. Это облегчит отладку и обслуживание вашего кода:
DataRow[] oDataRow;
DataTable oDatatable = webTrackLogic.loadGrid();

string query = $"DateReceived >= #{date1}# AND DateReceived <= #{date2}#";
oDataRow = oDatatable.Select(query);


Reden Rodriguez

Спасибо Дэйв я действительно Новичок в этом деле asp.net я все еще не знаю, что я могу сделать это $"DateReceived >= #{date1}# и DateReceived <= #{date2}#"; вы очень помогли.

Dave Kreskowiak

Это не имеет никакого отношения к делу. ASP.NET. Это базовое знание условных выражений, которое применимо ко многим другим вещам, таким как if операторы, выражения LINQ, операторы SQL, ...