Avatar billede thormam Nybegynder
12. januar 2011 - 09:39 Der er 3 kommentarer og
1 løsning

ExecuteReader klager i min e.CommandName

Jeg har en repeater med knapper der har "index" som Command Argument. Det virker fint og kan trække værdien.

Jeg prøver så dette her:

protected void rptMedarb_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.CommandName == "cmdRptNavn")
            {
                string index = e.CommandArgument.ToString();
               
                SqlConnection con = new SqlConnection("Data Source");
                SqlCommand cmd = new SqlCommand("SELECT");
                con.Open();

                SqlDataReader read = cmd.ExecuteReader();
                while (read.Read())
                {
                    lblNavn.Text = (string)read["navn"].ToString();
                    lblStilling.Text = (string)read["titel"].ToString();
                    lblSted.Text = (string)read["lokation"].ToString();
                    lblAfdeling.Text = (string)read["afdeling"].ToString();
                    lblReference.Text = (string)read["reference"].ToString();
                    lblAnsat.Text = (string)read["ansat"].ToString();
                    lblFoedselsdag.Text = (string)read["foedselsdag"].ToString();
                    lblTelefon.Text = (string)read["telefon"].ToString();
                    imgMedarbejder.ImageUrl = "~/billeder/medarbejdere/" + (string)read["billede"].ToString();
                }
                read.Close();
                con.Close();
            }
        }

Jeg får nu følgende fejl når jeg trykker på en knap i min repeater:


ExecuteReader: Egenskaben Connection er ikke initialiseret.

Line 29: SqlDataReader read = cmd.ExecuteReader();
Avatar billede thormam Nybegynder
12. januar 2011 - 09:46 #1
Fik ikke afsluttet

Hvorfor fejler den? har brugt den DataReader mange gange men dog ikke i den forbindelse med e.CommandName. Er der specielle regler eller metoder til at "datareade" der?
Avatar billede aaberg Nybegynder
12. januar 2011 - 10:11 #2
Du bliver nød til at give din SqlConnection som parameter til din SqlCommand, ellers ved din SqlCommand ikke hvilken connection den skal bruge.

Den nemmeste måde at gøre dette på, er når du opretter din command.

SqlCommand cmd = con.CreateCommand();
cmd.CommandText = "SELECT something FROM sometable";

Det har altså ingenting med e.CommandName at gøre.
Avatar billede thormam Nybegynder
12. januar 2011 - 10:17 #3
du har helt ret. Jeg havde angivet con i min cmd men med en lille stavefejl.

Nemme point hvis du vil have dem :) tak
Avatar billede aaberg Nybegynder
12. januar 2011 - 10:25 #4
Svar  :)
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
Kurser inden for grundlæggende programmering

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