Odkaz není....   zodpovězená otázka

ASP.NET WebForms

Dobrý den.

Chci se zeptat, proč v mém reklamním systému, nefunguje nastavení defaultvalue asp:parameter.

Chyba:

V aplikaci /Reklama došlo k chybě serveru.
Odkaz na objekt není nastaven na instanci objektu. 
Popis: Při provádění aktuálního webového požadavku došlo k neošetřené výjimce. Další informace o chybě a o jejím původu v kódu naleznete v trasování zásobníku. 

Podrobnosti o výjimce: System.NullReferenceException: Odkaz na objekt není nastaven na instanci objektu.

Zdrojová chyba: 

Řádek 4:  
Řádek 5:      Protected Sub FormView1_ItemInserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.FormViewInsertEventArgs) Handles FormView1.ItemInserting
Řádek 6:          SqlDataSource1.UpdateParameters("UserName").DefaultValue = User.Identity.Name
Řádek 7:      End Sub
Řádek 8:  End Class


Zdrojový soubor: C:\Users\PSOM\Desktop\Reklama\Admin\Default.aspx.vb    Řádek: 6 

Trasování zásobníku: 

[NullReferenceException: Odkaz na objekt není nastaven na instanci objektu.]
   Admin_Default.FormView1_ItemInserting(Object sender, FormViewInsertEventArgs e) in C:\Users\PSOM\Desktop\Reklama\Admin\Default.aspx.vb:6
   System.Web.UI.WebControls.FormView.OnItemInserting(FormViewInsertEventArgs e) +133
   System.Web.UI.WebControls.FormView.HandleInsert(String commandArg, Boolean causesValidation) +193
   System.Web.UI.WebControls.FormView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +676
   System.Web.UI.WebControls.FormView.OnBubbleEvent(Object source, EventArgs e) +95
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.FormViewRow.OnBubbleEvent(Object source, EventArgs e) +113
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +118
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +166
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565


Informace o verzi: Microsoft .NET Framework verze:2.0.50727.3074; verze ASP.NET:2.0.50727.4049

Neví někdo co to je?

Děkuji předem!!!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pošlete kód, kterým deklarujete SqlDataSource. Z tohohle to nevykoukáme.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tím myslíte tohle že:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" 
        DeleteCommand="DELETE FROM [Seznam] WHERE [Id] = @Id" 
        InsertCommand="INSERT INTO [Seznam] ([Url], [UserName]) VALUES (@Url, @UserName)" 
        SelectCommand="SELECT [Id], [Url], [UserName] FROM [Seznam]" 
        UpdateCommand="UPDATE [Seznam] SET [Url] = @Url, [UserName] = @UserName WHERE [Id] = @Id">
    <InsertParameters>
        <asp:Parameter Name="Url" Type="String" />
        <asp:Parameter Name="UserName" Type="String" />
    </InsertParameters>
    </asp:SqlDataSource>

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Přesně tohle mám na mysli a hned je jasné, co vám tam nefunguje.

Nemáte nadefinovány žádné UpdateParameters, tím pádem volání SqlDataSource1.UpdateParameters("UserName") vrátí Nothing. Update parametr s názvem UserName totiž neexistuje, musíte ho nadeklarovat nebo vytvořit kódem.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky!

PS: Nechápu proč jsem tak nevšímavý, nechal jsem vs dát tam updateparameter místo in.par.! :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

a ještě:

    Protected Sub FormView1_ItemInserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.FormViewInsertEventArgs) Handles FormView1.ItemInserting

        SqlDataSource1.UpdateParameters("UserName").DefaultValue = User.Identity.Name()
    End Sub

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback