Avatar billede gasmanden Nybegynder
07. marts 2005 - 13:34 Der er 7 kommentarer og
1 løsning

Stored Procedure returnerer ikke alle rækker.

Hej...

Jeg har en Stored Procedure som skal returnere et recordsæt til mig.

Når jeg kører den i Query Analyseren returnerer den alle rækker fint, men når jeg kalder den fra min kode returnerer den alle rækker pånær 4, den "klipper" lige de sidste rækker væk, og den sidste rækker jeg får vist, bliver vist 2 gange.

Er der nogen som genkender problemet, og kan fortælle mig hvad jeg gør forkert?
Avatar billede arne_v Ekspert
07. marts 2005 - 13:43 #1
Jeg har aldrig hørt om sådan en fejl i en SP.

Må vi se din kode ?
Avatar billede bromer Nybegynder
07. marts 2005 - 13:43 #2
Umiddelbart har jeg ikke selv oplevet det. Kan man se din SP?
Avatar billede gasmanden Nybegynder
07. marts 2005 - 13:47 #3
Det må i da, men den er rimeligt simpel... så...

CREATE PROCEDURE ita_spGetQuestions
    @SurveyID int

AS

SELECT
    QuestionId,
    QuestionText
FROM
    vts_tbQuestion
WHERE
    SurveyID = @SurveyID
ORDER BY
    PageNumber,
    DisplayOrder
GO
Avatar billede arne_v Ekspert
07. marts 2005 - 13:49 #4
Det var ikke SP'en men den kode som kalder SP'en vi gerne vil se
Avatar billede gasmanden Nybegynder
07. marts 2005 - 13:57 #5
Så får i da den...
---------------------------------------------------------------------------
using System;
using System.Data;
using System.Collections;
using System.Data.SqlClient;
using Configuration;
using Microsoft.ApplicationBlocks.Data;

namespace Code
{
    /// <summary>
    /// Summary description for QuestionCollection.
    /// </summary>
    public class QuestionCollection :CollectionBase
    {
        public QuestionCollection(int SurveyId)
        {
            SqlParameter[] parm = new SqlParameter[1];
            parm[0] = new SqlParameter("@SurveyID", SurveyId);
           
            SqlDataReader drQuestions = SqlHelper.ExecuteReader(Configuration.AppSettings.getConnString,CommandType.StoredProcedure,"ita_spGetQuestions", parm);

            if(drQuestions.HasRows)
            {
                while(drQuestions.Read())
                {
                    Question question = new Question((int)drQuestions["QuestionId"],drQuestions["QuestionText"].ToString());
                    this.List.Add(question);
                }
            }
        }
    }
}
Avatar billede arne_v Ekspert
07. marts 2005 - 14:06 #6
Hm. Den kode er jo ikke vildt kompliceret.

if(drQuestions.HasRows)
{
}

må være overflødig men skulle jo ikke lave nogen ulykker.

Du får ikke nogen exception ?

Har du prøvet at angive type til din SqlParameter ?

Jeg var ikke klar over at man kunne lave ORDER BY på felter som man ikke
selectede.
Avatar billede gasmanden Nybegynder
07. marts 2005 - 14:17 #7
Nej jeg får ingen exception.

Det skal lige nævnes at hvis jeg kalder med et andet id, hvor det tilhørende recordsæt kun er med en 2-3 rækker bliver de returneret fint.

Muligvis kan man ikke ordby by noget som man ikke selecter... :) Har nu selected Display number også, men med samme resultat.
Avatar billede gasmanden Nybegynder
12. april 2005 - 14:05 #8
æv...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Udviklings- og Forenklingsstyrelsen

Scrum Master

Unik System Design A/S

Head of Internal IT

Udviklings- og Forenklingsstyrelsen

Fullstack-udvikler i et automatiseret DevOps-miljø