Avatar billede 2AA Nybegynder
25. april 2010 - 22:47 Der er 13 kommentarer

Mister ID ved Session overførsel

Hej

Er ved at lave en produkt-oprettelses formular. Først skal man udfylde "Tabel_Produkt" og derefter skal man udfylde "Tabel_SignUp".
Mit problem er at mit "Produkt_ID", som jeg har i begge tabeller, bliver til 0 i "Tabel_SignUp"!?

Har brugt Sessions til overførsel af mine data fra "Tabel_Produkt" til "Tabel_SignUp". Alt bliver oprettet, pånær mine ID!!

Gør jeg det forkert med Session eller hvad sker der?


Håber virkelig nogle kan hjælpe mig. Er lost!

Tak på forhånd! ;-)
Avatar billede keysersoze Guru
25. april 2010 - 23:12 #1
Den tror jeg kræver lidt mere info eller kode.
Avatar billede 2AA Nybegynder
25. april 2010 - 23:56 #2
Hey keysersoze og tak for din feedback!

Min "Tabel_Produkt" indeholder: produktID, produktnavn osv.. Min "Tabel_SignUp" indeholder: SignUpID, produktID, Username osv..

Jeg har forbundet disse 2 tabeller gennem en nested query i DAL!

På min produkt-oprettelses side overføre jeg mine produkt data til signup siden via følgende kode:

Session["txtProductName"] = txtProductName.Text; osv..
Her har jeg ikke produktID med!

Min signup-oprettelses side ser således ud:
Page_Load
if (Session["txtProductName"] != null)
{
lblProductName.Text = (Session["txtProductName"].ToString());
}
Button
su.AddSignUp(Convert.ToInt32(Request.QueryString["ProductID"]), txtProductName.Text, osv..);
wb.AddProduct(lblSiteName.Text, osv..)



Hvis det giver lidt mere mening?
Avatar billede keysersoze Guru
26. april 2010 - 07:02 #3
hvor kommer din querystrin fra? det lyder lidt underligt for mig at den er på din signu-side?
Avatar billede 2AA Nybegynder
26. april 2010 - 12:17 #4
hmm.. jah min querystring kommer ikke rigtig nogle steder fra.. hvordan skal/kan jeg ellers finde produktID fra "Tabel_product" på signup-siden?
Avatar billede keysersoze Guru
26. april 2010 - 19:37 #5
Jeg ved jo ikke hverken hvad dit system skal kunne eller særlig meget om hvordan din nuværende kode ser ud - jeg har kun ganske få brudstykker af det og af det figurerer der kun et request af en querystring, men om den er sat kan ikke ses.

hvis jeg som bruger kommer ind på signup-siden er der så nogle querystrings med? Hvis du sætter et debug-mærke ved din button, hvilken værdi har din Request.QueryString["ProductID"] så?
Avatar billede 2AA Nybegynder
27. april 2010 - 14:27 #6
Hvis jeg sætter debug-mærke til min button så får jeg værdien "0". Og der er ingen querystrings med, når du som bruger går ind på signup-siden. Kan godt se, den nok ikke vil fungere. :-/ Kan bare ikke overskue hvordan jeg hiver ID ud, fra den ene side til den anden. Så når jeg klikker på signup-knappen, både får ProduktID i "Produkt_tabellen" og "Signup_Tabellen". Så jeg på den måde, kan skabe bånd mellem de tabeller.


Har somsagt kun 2 sider, opret produkt og opret bruger.

Opret produkt siden:
ProductsBLL pro = new ProductsBLL();

protected void Page_Load(object sender, EventArgs e)
{
}
    protected void btnContinue_Click(object sender, EventArgs e)
    {
        try
        {
            if (User.Identity.IsAuthenticated)
            {
                Response.Redirect("~/Kvittering.aspx");
            }
            else
            {
                Session["txtProductName"] = txtSiteName.Text;
                Session["txtProductDes"] = txtSiteURL.Text;
               
                Response.Redirect("~/SignUp.aspx");
            }
        }
        catch (Exception err)
        {
            lblStutus.Text = err.Message;
        }

Opret bruger siden:
SignUpBLL su = new SignUpBLL();
ProductsBLL pro = new ProductsBLL();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            if (Session["txtProductName"] != null)
            {
                lblProductName.Text = (Session["txtProductName"].ToString());
            }
            if (Session["txtProductDec"] != null)
            {
                lblProductDec.Text = (Session["txtProductDec"].ToString());
            }
        }
    }

    protected void btnSignup_Click(object sender, EventArgs e)
    {
        try
        {
            CreateUser();
            InsertProductData();

            FormsAuthentication.SetAuthCookie(txtUsername.Text, false);
            Response.Redirect("~/Default.aspx");
        }
        catch (Exception)
        {
            litStatus.Text = "Der opstod en fejl, prøv igen.";
        }
    }

    private void CreateUser()
    {
        MembershipUser newUser = Membership.CreateUser(txtUsername.Text, txtPassword.Text, txtEmail.Text);
        Guid UserGuid = (Guid)user.GetGuidByName(txtUsername.Text);
        su.AddSignUp(Convert.ToInt32(Request.QueryString["WebSiteId"]), txtUsername.Text, cbNewsletter.Checked);
    }

    private void InsertProductData()
    {
        wb.AddProduct(lblProductName.Text, lblProductDec.Text);
    }
Avatar billede 2AA Nybegynder
27. april 2010 - 14:29 #7
Rettelse:
su.AddSignUp(Convert.ToInt32(Request.QueryString["WebSiteId"]), txtUsername.Text, cbNewsletter.Checked);

er selvfølgelig:
su.AddSignUp(Convert.ToInt32(Request.QueryString["ProductID"]), txtUsername.Text, cbNewsletter.Checked);
Avatar billede keysersoze Guru
27. april 2010 - 14:54 #8
Hvor kommer ID fra oprindeligt? Kan du ikke også gemme det i en session, hive det ud fra dit businesslag på din signup-side eller netop føre ID videre i din querystring?
Avatar billede 2AA Nybegynder
27. april 2010 - 16:12 #9
Hvordan gemmer jeg ProductID i session? hvordan kan jeg evt hive ProductID ud?
Avatar billede keysersoze Guru
27. april 2010 - 16:37 #10
Det kan jeg ikke se ud fra de oplysninger du har givet - hvor findes det henne nu og hvordan benytter du det andre steder på siden? Er det ikke muligt for dig at føre ID videre fra den første side fremfor to tekst-strenge?
Avatar billede 2AA Nybegynder
27. april 2010 - 17:00 #11
Henter mit ID ud fra BLL? Hvilket oplysninger har du ellers brug for at se?
Avatar billede keysersoze Guru
27. april 2010 - 18:23 #12
jamen - du har en fejl fordi du ikke får fat i den variabel du har behov for, men den variabel du har behov for figurerer ingen steder i din kode og derfor er det selvsagt ret umuligt at komme med en løsning.

Hvis du ved hvor dit ID er og hvordan du får fat i det burde det så ikke være en let sag at hive det ud på en af de to sider - og hvis det sker på den første side så føre det videre enten i en session eller querystring variabel?
Avatar billede keysersoze Guru
27. juni 2010 - 11:00 #13
Kommet videre?
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