Avatar billede mikkel251 Seniormester
21. februar 2016 - 16:42 Der er 2 kommentarer og
1 løsning

There is no row at position 0

jeg har kikket lidt igennem jeres svar herinde og jeg kan ikke finde en løsning til mit problem som ellers er det samme som mange andre har haft, nemlig - There is no row at position 0, jeg har indhold i databasen og jeg har også tjekket min sql sætninger i databasen og der henter den fint mine brugere efter id, nu har jeg googlet i 2 dage på det problem og jeg fatter ikke hvorfor den bliver ved med at skrive det...

Det er i linje 22 fejlen kommer...
tak for i gider kikke på det og hvis der er noget andet i mangler for at hvorfor jeg får en fejl siger i bare til...

min codebehind:

using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class admin_RedigerAnsat : System.Web.UI.Page
{
    frisoerenFac objFrisoer = new frisoerenFac();

    protected void Page_Load(object sender, EventArgs e)
    {
        Page.Title = "Rediger ansat";

        //1) Da jeg kun skal hente en ansat af gangen skal jeg bruge denne her kode istedetfor en foreach loop
        if (!IsPostBack)
        {
           
                DataRow _DrHentAnsat = objFrisoer.hentAnsat(txtFornavn.Text, Convert.ToInt32(Request.QueryString["AnsatteID"])).Rows[0];
                //2) Her fylder jeg feltet txtFornavn med den ansat der skal redigeres...
                txtFornavn.Text = _DrHentAnsat["fldBrugernavn"].ToString();
         

        }
    }

    protected void btnRediger_Click(object sender, EventArgs e)
    {
        int _id = Convert.ToInt32(Request.QueryString["AnsatteID"]);

        //3) Hent den nuværende data på ansatte fra databasen og put det i en datatable
        objFrisoer._id = _id;
        DataTable _RedigerAnsat = objFrisoer.RedigerAnsat();

        //4) Put nuværende imagenavn i en variabel - så det efterfølgene kan overskrives med noget nyt - hvis admin har puttet nyt image i imageuploader...
        string billedenavn = _RedigerAnsat.Rows[0]["fldImg"].ToString();//Det nuværende imagenavn i databasen...



        //5) Denm her måde at spørge på er mere sigger end txtFornavn.Text != ""
        if (String.IsNullOrEmpty(txtFornavn.Text))
        {
            //Tjekker om der ligger en fil i fileupload
            if (fuImgRediger.HasFile)
            {
                //her laver jeg en variabel som skal indeholde filnavnet på filen....
                string extension = System.IO.Path.GetExtension(fuImgRediger.FileName);

                //Tjekker om det er det rigtige filformat...
                if (extension == ".jpg" || extension == ".png" || extension == ".gif" || extension == ".jpeg")
                {
                    //her sletter jeg først det gamle billede før jeg oploader et nyt
                    //6 )Tjek først om filen/image findes - for hvis den ikke gør så får man en fejl når man forsøger at slette en fil som ikke er der
                    if (File.Exists(Server.MapPath(@"~\\img/frisoeren/" + _RedigerAnsat.Rows[0]["fldImg"])))
                    {
                        //Den her sletter billedet fra mappen på serveren
                        File.Delete(Server.MapPath(@"~\\img/frisoeren/" + _RedigerAnsat.Rows[0]["fldImg"]));
                    }

                    //7) Her bruger jeg min guid variabel
                    string guid = Guid.NewGuid().ToString();

                    //8) her overskriver jeg det gamle billede
                    billedenavn = guid + fuImgRediger.FileName;

                    //9) her gemmer jeg billedet efter det er valgt i file upload
                    fuImgRediger.SaveAs(Request.PhysicalApplicationPath + @"img/frisoeren/" + billedenavn);

                    //10 ) Her opdateres hele pivtøjet på siden og i databasen...
                    objFrisoer.opdaterAnsat(Convert.ToInt32(Request.QueryString["AnsatteID"]), txtFornavn.Text, billedenavn);

                }

                else
                {
                    //her er hvad den vil sige hvis filen ikke indeholde et billede format
                    litRedigerAnsat.Text = "Forkert filformat";
                }

            }

        }
    }
}

Her er metoden jeg bruger
    public DataTable hentAnsat(string _brugernavn, int _id)
    {
        cmd = new SqlCommand("SELECT fldId, fldBrugernavn FROM tblPersonale WHERE fldId=@id");
        cmd.Parameters.AddWithValue("@brugernavn", _brugernavn);
        cmd.Parameters.AddWithValue("@id", _id);
        return DA.GetData(cmd);
    }
Avatar billede softspot Forsker
21. februar 2016 - 17:00 #1
Hvis din SQL-sætning til at hente ansatte fungerer med korrekte parameterværdier, så kunne det være du skulle undersøge de parameterværdier du sender ind til din SQL-sætning...

Fyr op under din debugger og sæt et breakpoint på den første linje i din hentAnsat-funktion og tjek hvad der ligger i _brugernavn og _id.
Avatar billede mikkel251 Seniormester
24. februar 2016 - 16:39 #2
jeg fandt ud af den når man sidder i visual studio og højreklikker på den side som skal vis indholde som kommer med querystringen så har den ikke noget med for jeg har ikke bedt den komme med noget og derfor fik jeg den fejl, dumme mig :D jeg skal jo kalde på siden i browseren så der kommer indhold med hen på siden :D så den er løst og tak for jeres hjælp :D hvis i skal have nogen point hvad er det så lige jeg gør??
Avatar billede softspot Forsker
24. februar 2016 - 18:14 #3
Velbekomme :-)
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