Come faccio a ottenere il componente Query C # per riconoscere le colonne restituite i dati da una tabella temporanea in una stored procedure sql

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

Domanda

Ho creato una procedura memorizzata simile a quella sotto (sto usando questa versione ridotta per provare a capire il nostro 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

Dal mio codice C # in VS2008, sto cercando di utilizzare il componente Query con l'opzione Usa procedura memorizzata esistente per connetterlo a un DataTable / DataGridView per visualizzare i risultati.

Tuttavia, poiché sto selezionando da una tabella temporanea, nelle proprietà del componente Query Visual Studio non visualizza alcuna colonna restituita dalla procedura memorizzata. Presumo che abbia difficoltà a determinare i tipi di dati utilizzati poiché l'SP non si basa su uno schema reale.

La connessione a diverse stored procedure selezionate da tabelle reali mostra correttamente le colonne.

Qualcuno lo sa in giro? C'è una sorta di suggerimento che posso aggiungere da qualche parte per indicare esplicitamente quale tipo di dati verranno restituiti?

Grazie in anticipo.

È stato utile?

Soluzione

Per informazioni, potresti prendere in considerazione l'utilizzo di una variabile di tabella " piuttosto che una tabella temporanea (ovvero @FOO anziché #FOO) - questo potrebbe aiutare un po ', e certamente aiuta alcuni problemi di tempdb.

Con le tabelle temporanee - no, non è possibile dichiarare esplicitamente lo schema SPs. Vorrei forse suggerire di utilizzare una versione semplificata di SP mentre si generano le classi wrapper, ovvero fare in modo che un semplice SELEZIONA della forma corretta.

In alternativa, userei LINQ per consumare un UDF, che ha ha uno schema esplicito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top