Avatar billede mnordby Nybegynder
27. februar 2003 - 12:16 Der er 3 kommentarer og
1 løsning

Stored procedure med parameter.

Hej

Kan man ikke give kolonnenavn med parameter til en store procedure?

Min Kode ser således ud:

public void DisplayMemory()
    {
sqlCom = new System.Data.SqlClient.SqlCommand("sp_memory",sqlCon);

sqlCom.CommandType = CommandType.StoredProcedure;

           
sqlCom.Parameters.Add(new SqlParameter("@column", SqlDbType.VarChar, 50));
           
sqlCom.Parameters["@column"].Value = "whois";

sqlCon.Open();

SqlDataReader dr = sqlCom.ExecuteReader();
           
while (dr.Read())
{
Response.Write(dr["whois"]);
}

dr.Close();
sqlCon.Close();
}

Og min Stored procedure ser således ud:

ALTER PROCEDURE sp_memory
    (
        @column varchar(50)
    )
AS
select @column from Memory
   
RETURN

Hvad går der galt?
Den udskriver whois som resultat istedet for kolonnedata!
Avatar billede z42cool Nybegynder
27. februar 2003 - 12:39 #1
Det er din storedprocedure der er problemet, du bliver nødt til at gøre noget i retning af:

ALTER PROCEDURE sp_memory
    (
        @column varchar(50)
    )
AS
  EXEC 'SELECT ' + @column + ' FROM Memory'
   
RETURN
Avatar billede mnordby Nybegynder
27. februar 2003 - 12:52 #2
jeg kan desværre ikke rigtigt få det til at virke. Jeg får fejl i min stored procedure.
Avatar billede z42cool Nybegynder
27. februar 2003 - 12:59 #3
My bad... Glemte paranteser:

ALTER PROCEDURE sp_memory
    (
        @column varchar(50)
    )
AS
  EXEC('SELECT ' + @column + ' FROM Memory')
   
RETURN
Avatar billede mnordby Nybegynder
27. februar 2003 - 13:00 #4
Smukt!
Mange tak!
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