Как получить компонент C # Query для распознавания возвращаемых столбцами данных из временной таблицы в хранимой процедуре sql - PullRequest
4 голосов
/ 15 октября 2008

Я создал хранимую процедуру, аналогичную приведенной ниже (я использую эту урезанную версию, чтобы попытаться решить проблему).

CREATE PROCEDURE bsp_testStoredProc
AS
BEGIN

CREATE TABLE #tmpFiles  
(
    AuthorName NVARCHAR(50), 
    PercentageHigh INT
) 

-- Insert data into temp table

SELECT AuthorName, PercentageHigh FROM #tmpFiles 
ORDER BY PercentageHigh DESC

DROP TABLE #tmpFiles

RETURN 0
END

Из моего кода C # в VS2008 я пытаюсь использовать компонент Query с параметром Использовать существующую хранимую процедуру , чтобы подключить его к DataTable / DataGridView для отображения результатов.

Однако, поскольку я выбираю во временной таблице, в свойствах компонента Query Visual Studio не отображает столбцы, возвращаемые из хранимой процедуры. Я предполагаю, что у него возникают проблемы с определением используемых типов данных, поскольку SP не основан на реальной схеме.

При подключении к различным хранимым процедурам, которые выбираются из реальных таблиц, столбцы отображаются правильно.

Кто-нибудь знает об этом? Есть ли какая-то подсказка, которую я могу добавить где-нибудь, чтобы явно указать, какие данные будут возвращены?

Заранее спасибо.

1 Ответ

1 голос
/ 15 октября 2008

Для информации, вы можете рассмотреть возможность использования «табличной переменной», а не временной таблицы (т. Е. @FOO, а не #FOO) - это может немного помочь, и, конечно, поможет несколько проблем с tempdb.

С временными таблицами - нет, нет способа явно объявить схему SP. Возможно, я бы предложил использовать упрощенную версию SP, пока вы генерируете свои классы-обертки - то есть он выполняет тривиальный SELECT правильной формы.

В качестве альтернативы, я бы использовал LINQ для использования UDF, который имеет с явной схемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...