2009-10-09 3 views
0

Matin tous. J'ai moi-même une requête simple qui renvoie dix lignes dans SQL Server Management Studio. J'appelle le proc stocké en cliquant droit dessus et en alimentant les paramètres.Processus stocké dans la classe de jeu de données .net par rapport à la gestion de studio

Les résultats sont retournés immédiatement.

Dans .NET nous avons mis en place une classe de jeu de données, ajouté un adaptateur de table dont la sélection est cette même procédure. Je passe dans les mêmes paramètres et les temps d'exécution sortent après les 30 secondes standard. Il continue à fonctionner immédiatement lorsqu'il est appelé dans le studio de gestion de serveur sql.

Toutes les idées pour lesquelles le temps d'exécution est apparemment infini dans la classe de jeu de données .net.

La requête est très simple.

+0

Pouvez-vous écrire du code? Difficile à dire sans rien voir ... Sauf si vous avez coché la propriété de temps d'exécution infinie dans l'ensemble de données? – Paddy

+0

J'ai posté dans un fil séparé – Robert

Répondre

0
ALTER PROCEDURE [dbo].[usp_GetPostcodeAnalysis] 
    -- Add the parameters for the stored procedure here 
    @startDate DATETIME, 
    @endDate DATETIME, 
    @customerID INTEGER = NULL, 
    @siteID INTEGER = -1 
AS 

DECLARE @itemTypeID INT 
SELECT @itemTypeID=ItemTypeID FROM dbo.ItemTypes WHERE ItemTypeName = 'Advert' 

DECLARE @SQL NVARCHAR(4000) 

BEGIN 

SET @SQL = 'SELECT at.ActionTypeName, 
      COUNT(*) AS "Count" 
    FROM CustomerSites cs JOIN Items i 
    ON cs.SiteID = i.SiteID 
    JOIN Actions a 
    ON a.ItemID = i.ItemID 
    JOIN ActionTypes at 
    ON a.ActionTypeID = at.ActionTypeID 
    WHERE a.DateAndTime BETWEEN @1 AND @2 
    AND i.ItemTypeID = @iti 
    AND at.ActionTypeName IN (''List view'', ''Full view'', ''Email enquiry'', ''Print view'', ''Directions'')' 

IF @customerID IS NOT NULL 
    SET @SQL = @SQL + ' AND i.CustomerID = @c' 

IF @siteID > -1 
    SET @SQL = @SQL + ' AND i.SiteID = @s' 


SET @SQL = @SQL + ' GROUP BY 
      at.ActionTypeName 
    ORDER BY 
      at.ActionTypeName' 

EXECUTE sp_executesql @SQL, 
    N'@1 DATETIME, @2 DATETIME, @iti INT, @c INT, @s INT', 
    @startDate, @endDate, @itemTypeID, @customerID, @siteID 
Questions connexes