Como faço para obter o componente C # consulta para reconhecer as colunas dados retornados de uma tabela temporária em um procedimento armazenado SQL

StackOverflow https://stackoverflow.com/questions/204155

Pergunta

Eu criei um procedimento armazenado semelhante ao abaixo (estou usando este corte para baixo versão para tentar descobrir o nosso problema).

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

Do meu código C # no VS2008, eu estou tentando usar o componente de consulta com o Use existentes armazenados Regimento opção de ligar este até um DataTable / DataGridView para exibir os resultados.

No entanto, porque eu estou selecionando a partir de uma tabela temporária, nas propriedades do componente de consulta Visual Studio não exibe nenhuma coluna que está sendo retornado do procedimento armazenado. Presumo que ele tem problemas para determinar os tipos de dados que está sendo utilizado desde o SP não se baseia em um esquema real.

Como conectar a diferentes procedimentos armazenados que selecionar tabelas reais mostram as colunas corretamente.

Alguém sabe longe de contornar isso? Existe algum tipo de dica que posso acrescentar um lugar para explicitamente estado que tipo de dados serão devolvidos?

Agradecemos antecipadamente.

Foi útil?

Solução

Para informações, você pode considerar o uso de uma "variável de tabela" em vez de uma tabela temporária (ou seja @FOO em vez de #FOO) -. Isso pode ajudar um pouco, e ele certamente ajuda a questões poucos tempdb

Com tabelas temporárias - não há nenhuma maneira de declarar explicitamente o esquema SPs. I talvez sugerir o uso de uma versão simplificada do SP enquanto você gerar suas classes de mensagens publicitárias -. Ou seja, tem que fazer um SELECT trivial da forma correta

Como alternativa, eu usaria LINQ para consumir um UDF, que não tem esquema explícito.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top