Avatar billede aspnet33 Nybegynder
10. februar 2010 - 18:40 Der er 6 kommentarer og
1 løsning

Hvorfor virker min stored procedure ikke ?

Jeg sidder med developer 2008,  og roder med ellers verdens mest simple stored procedure...

Når jeg skriver Output og derefter executer, ber den mig om at skrive Out ved begge @parametre.
Men Out vil heller ikke virke, og den skriver heller ikke Out med blåt lissom den jo gør med int og varchar...




Min code-behind kode

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        SqlConnection Conn = new SqlConnection();
        Conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = Conn;
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = "SELECT dbo.StoredProcedure10";

       
    }




Og min stored procedures kode...

ALTER PROCEDURE dbo.StoredProcedure10
   
    (
    @kategorien varchar = 50 Output,
    @katid int = 1 Output
    )

AS
   
    RETURN SELECT COUNT (*) FROM kategori



Undrer mig osse lidt over, hvad forskellen er mellem Functions og stored procedure, som jo begge 2 kan vælges i database explorer...
Avatar billede arne_v Ekspert
10. februar 2010 - 18:53 #1
cmd.CommandText = "SELECT dbo.StoredProcedure10";

maa skulle vaere

cmd.CommandText = "dbo.StoredProcedure10";

da man ikke bruger SELECT ved kald af SP.

Din SP har to argumenter og koden kalder ikke med nogen.
Avatar billede arne_v Ekspert
10. februar 2010 - 18:55 #2
Og jeg tror at du vil faa paenere kode ved at returnere result sets fremfor bruge retur varedien.
Avatar billede arne_v Ekspert
10. februar 2010 - 18:56 #3
En function returnerer en enkelt vaerdi mens en SP kan slet ikke returnere noget eller kan returnere et eller flere result sets.
Avatar billede aspnet33 Nybegynder
10. februar 2010 - 19:25 #4
Nu har jeg så lavet det om til dether, og ændret min code-behind som du skrev...


ALTER PROCEDURE dbo.StoredProcedure10
   
    (
    @kategorien varchar = 50 Out,
    @katid int = 1 Out
    )
   
AS
    BEGIN

    DECLARE @mycount INT
    SET @mycount = (
    SELECT COUNT (*) FROM kategori
    )
   
   
    END

Hmm...måske sku man prøve det af i Funktion i stedet..?
Avatar billede arne_v Ekspert
10. februar 2010 - 19:43 #5
ALTER PROCEDURE dbo.StoredProcedure10
AS
SELECT COUNT (*) FROM kategori

er noget nemmere og saa fang resultatet med ExecuteReader eller ExecuteScalar.
Avatar billede aspnet33 Nybegynder
10. februar 2010 - 21:57 #6
Tak for hjælpen, Arne

Jeg har fået den til at returnere rækker via executereaderen...
samt at gøre som du nævnte i code-behind-filen

Så smid et svar :-)
Avatar billede arne_v Ekspert
10. februar 2010 - 22:14 #7
kommer her
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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