Я пытаюсь использовать SqlDataAdapter для заполнения DataTable, который я использую в качестве источника данных для DataGrid. С запросом все в порядке, по крайней мере, когда я запускаю его вручную в SSMSE. Когда я выполняю операцию заполнения, в таблице появляются нужные столбцы, но нет строк. Самое неприятное во всем этом то, что код идентичен (с другим запросом) на другой странице. Я не могу опубликовать запрос, но мой код инициализации выглядит так:
SqlCommand areaDAC = new SqlCommand (areaQuery, connection);
areaDAC.Parameters.Add (new SqlParameter ("@param",
System.Data.SqlDbType.NVarChar, 50));
m_areaDataAdapter = new SqlDataAdapter (areaDAC);
Тогда его использовать:
m_areaDataAdapter.SelectCommand.Parameters["@param"].Value = "Filter Val";
DataTable table = new DataTable ();
m_areaDataAdapter.Fill (table);
На этом этапе таблица имеет нужное количество столбцов и не содержит строк. Я знаю, что параметры добавляются правильно, я знаю, что данные для данного запроса существуют.
Обновление (как предоставлено Ником в комментарии):
SELECT * FROM
(SELECT
ROW_NUMBER() OVER(ORDER BY DateAndTime DESC) AS rowNum,
areaName, stationName, lineName, DateAndTime,
Element, Description
FROM
sdrReportArea, sdrReportStation, sdrReportTLine,
SDRSequenceEvents, SDRSequenceStates
WHERE
sdrReportArea.areaID = sdrReportStation.stationID
AND sdrReportStation.stationID = sdrReportTLine.stationID
AND sdrReportTLine.lineID = SDRSequenceEvents.LineID
AND SDRSequenceEvents.StateID = SDRSequenceStates.StateID
AND DateAndTime >= @startDate AND DateAndTime
Подробнее здесь: https://stackoverflow.com/questions/492 ... ns-no-rows