---
title: "Object reference not set to an instance of an object."
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/143900-object-reference-not-set-to-an-instance-of-an-object"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "trexter"
published: "2006-03-14T11:53:08.000Z"
updated: "2006-03-24T12:47:02.000Z"
replies: 16
views: 717
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/143900-object-reference-not-set-to-an-instance-of-an-object"
---

# Object reference not set to an instance of an object.

## #1 — trexter, 2006-03-14T11:53Z

Den här raden

```
myCommand.Parameters.Add("@ATTArende", SqlDbType.Int, 4).Value = btnFactory.CommandArgument;
```

ger mig felmeddelandet.

```
Object reference not set to an instance of an object.
```

Koden ligger i code-behind-filen. I den andra har jag:

```
                            <ASP:TemplateColumn HeaderText="" SortExpression="aa">
                            <ItemTemplate>
                                <asp:LinkButton ID="btnFactory" OnClick="Factory" runat=server CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ArendeID") %>'>Till fabrikslista</asp:LinkButton>
                            </ItemTemplate>
                            </asp:TemplateColumn>
```

i min DataGrid.

Tack på förhand! :)

Permalänk: https://www.webforum.nu/p/143900

## #2 — nitro2k01, 2006-03-14T11:58Z

Jag är inte helt inne på ASP, men jag får för mig att myCommand.Parameters.Add("@ATTArende", SqlDbType.Int, 4) inte returnerar något värde, så när du sen kör Value = ... så finns det inget som kan ta emot Value-parametern.

Permalänk: https://www.webforum.nu/p/1780345

## #3 — trexter, 2006-03-14T12:08Z

```
            String insertCmd = "insert into ArendenTillTillverkare (ATTArende, ATTTillverkare, ATTSkickad, ATTAnvID) values (@ATTArende, @ATTTillverkare, @ATTSkickad, @ATTAnvID)";

            SqlCommand myCommand = new SqlCommand(insertCmd, myConnection);

            myCommand.Parameters.Add(new SqlParameter("@ATTAnvID", SqlDbType.Int, 10));
            myCommand.Parameters["@ATTAnvID"].Value = UserIdentityName[1];

            myCommand.Parameters.Add(new SqlParameter("@ATTTillverkare", SqlDbType.Int, 4));
            myCommand.Parameters["@ATTTillverkare"].Value = 4;

 [b]           myCommand.Parameters.Add(new SqlParameter("@ATTArende", SqlDbType.Int, 4));
            myCommand.Parameters["@ATTArende"].Value = btnFactory.CommandArgument;[/b]

            myCommand.Parameters.Add(new SqlParameter("@ATTSkickad", SqlDbType.Bit, 4));
            myCommand.Parameters["@ATTSkickad"].Value = true;
```

men fortfarande samma fel.  :(

Permalänk: https://www.webforum.nu/p/1780350

## #4 — nitro2k01, 2006-03-14T12:09Z

Vad är btnFactory fär något då?

Permalänk: https://www.webforum.nu/p/1780351

## #5 — trexter, 2006-03-14T12:11Z

Den kan du se i min första post. :)
Jag har deklarerat den i code-behind-filen med:

```
public System.Web.UI.WebControls.LinkButton btnFactory;
```

Permalänk: https://www.webforum.nu/p/1780352

## #6 — trexter, 2006-03-14T12:25Z

Någon som har tid att döda?   ;)

Permalänk: https://www.webforum.nu/p/1780358

## #7 — trexter, 2006-03-14T12:33Z

Funktionen där insert:en ska göras börjar med 

```
   protected void Factory(Object sender, EventArgs E)
```

I annan kod har jag sett i stil med "e.CommandArgument" men får inte till det här.

Permalänk: https://www.webforum.nu/p/1780361

## #8 — m_soderlund, 2006-03-14T12:46Z

Troligtvis innehåller btnFactory.CommandArgument ingen info och det är det som gör att du får felmeddelandet när du sen försöker lägga till en parameter till myCommand.

Permalänk: https://www.webforum.nu/p/1780365

## #9 — trexter, 2006-03-14T13:03Z

Det är lite underligt för på ett annat ställe presenteras värdena som även borde finnas i commandargument. :)

```
                    <ASP:DataGrid id="MyDataGrid" runat="server"
                        Width="700"
                        BackColor="#ccccff"
                        BorderColor="black"
                        ShowFooter="false"
                        CellPadding=3
                        CellSpacing="0"
                        Font-Name="Verdana"
                        Font-Size="8pt"
                        HeaderStyle-BackColor="#aaaadd"
                        
                        DataKeyField="ArendeID"
                        AutoGenerateColumns="false">
                        
                        
                    <Columns>
                            <ASP:BoundColumn HeaderText="ID" DataField="ArendeID" ReadOnly=true />
                            
                            <ASP:TemplateColumn HeaderText="Ärende" SortExpression="ArendeID">
                            <ItemTemplate>
                                [b]<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ArendeID") %>'/>[/b]
                            </ItemTemplate>
                            </asp:TemplateColumn>
                            
                            <ASP:TemplateColumn HeaderText="Serienummer" SortExpression="ArendeSerieNr">
                            <ItemTemplate>
                                <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ArendeSerieNr") %>' />
                            </ItemTemplate>
                            </asp:TemplateColumn>                     
                        
                            <ASP:TemplateColumn HeaderText="Inkommen" SortExpression="ArendeInkommenDatum">
                            <ItemTemplate>
                                <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ArendeInkommenDatum") %>'/>
                            </ItemTemplate>
                            </asp:TemplateColumn>
                                  
                      
                            <ASP:TemplateColumn HeaderText="" SortExpression="aa">
                            <ItemTemplate>
                                [b]<asp:LinkButton ID="btnFactory" OnClick="Factory" runat=server CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ArendeID") %>'>Till fabrikslista</asp:LinkButton>[/b]
                            </ItemTemplate>
                            </asp:TemplateColumn>  
                 
                    </Columns>        
                    </ASP:DataGrid>
```

Permalänk: https://www.webforum.nu/p/1780372

## #10 — trexter, 2006-03-14T17:34Z

Ingen? :)

Permalänk: https://www.webforum.nu/p/1780449

## #11 — P, 2006-03-14T17:56Z

Låter som du glömt new någonstans? Kanske ute och cyklar men...

```
public System.Web.UI.WebControls.LinkButton btnFactory = new System.Web.UI.WebControls.LinkButton();
```

Permalänk: https://www.webforum.nu/p/1780453

## #12 — trexter, 2006-03-14T18:22Z

Tack. Jag tror det fungerar. :) Men:

```
            String insertCmd = "insert into ArendenTillTillverkare (ATTArende, ATTTillverkare, ATTSkickad, ATTAnvID) values (@ATTArende, @ATTTillverkare, @ATTSkickad, @ATTAnvID)";

            SqlCommand myCommand = new SqlCommand(insertCmd, myConnection);

            myCommand.Parameters.Add(new SqlParameter("@ATTAnvID", SqlDbType.Int, 10));
            myCommand.Parameters["@ATTAnvID"].Value = UserIdentityName[1];

            myCommand.Parameters.Add(new SqlParameter("@ATTTillverkare", SqlDbType.Int, 4));
            myCommand.Parameters["@ATTTillverkare"].Value = 4;
            
            [b]myCommand.Parameters.Add(new SqlParameter("@ATTArende", SqlDbType.Int, 4));
            myCommand.Parameters["@ATTArende"].Value = Int32.Parse(btnFactory.CommandArgument);[/b]

            myCommand.Parameters.Add(new SqlParameter("@ATTSkickad", SqlDbType.Bit, 4));
            myCommand.Parameters["@ATTSkickad"].Value = true;
```

ger

```
System.FormatException: Input string was not in a correct format.
```

Ändå är 'ATTArende' av typen int i databasen.

   :q

Permalänk: https://www.webforum.nu/p/1780470

## #13 — cok, 2006-03-14T18:45Z

Hur ser 

```
btnFactory.CommandArgument
```

ut då?

Permalänk: https://www.webforum.nu/p/1780487

## #14 — trexter, 2006-03-14T18:47Z

> **cok skrev:**
>
> Hur ser 
>
> ```
> btnFactory.CommandArgument
> ```
>
> ut då?

Den "propertyn" är ju en sträng vad jag vet, det är ju därför jag försöker parsa om den till en int.

Permalänk: https://www.webforum.nu/p/1780489

## #15 — cok, 2006-03-14T19:03Z

Ja men vad är innehållet, låter som den är tom.

Permalänk: https://www.webforum.nu/p/1780501

## #16 — trexter, 2006-03-24T12:15Z

Hej igen, jo strängen btnFactory.CommandArgument är tom. Hur kan detta vara?
I datagriden har jag ju

```
                    <Columns>
                            <ASP:BoundColumn HeaderText="ID" DataField="ArendeID" ReadOnly=true />
                            
                            <ASP:TemplateColumn HeaderText="Ärende" SortExpression="ArendeID">
                            [b]<ItemTemplate>
                                <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ArendeID") %>'/>
                            </ItemTemplate>[/b]
                            </asp:TemplateColumn>
                            
                            <ASP:TemplateColumn HeaderText="Serienummer" SortExpression="ArendeSerieNr">
                            <ItemTemplate>
                                <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ArendeSerieNr") %>' />
                            </ItemTemplate>
                            </asp:TemplateColumn>                     
                        
                            <ASP:TemplateColumn HeaderText="Inkommen" SortExpression="ArendeInkommenDatum">
                            <ItemTemplate>
                                <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ArendeInkommenDatum") %>'/>
                            </ItemTemplate>
                            </asp:TemplateColumn>
                                  
                      
                            <ASP:TemplateColumn HeaderText="" SortExpression="aa">
                            <ItemTemplate>
                                [b]<asp:LinkButton ID="btnFactory" OnClick="Factory" runat=server CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ArendeID") %>'>Till fabrikslista</asp:LinkButton>[/b]
                            </ItemTemplate>
                            </asp:TemplateColumn>  
                 
                    </Columns>
```

 \<asp:Label runat="server" Text='\<%# DataBinder.Eval(Container.DataItem, "ArendeID") %\>'/\>

skrivs ut. Då tycker man att värdet i ItemTemplate:n i slutet också borde komma med?   :q

edit. Även om jag skriver

```
<asp:LinkButton ID="btnFactory" OnClick="Factory" runat=server CommandArgument='hej'>Till fabrikslista</asp:LinkButton>
```

skickas inget värde med (eller inget värde kan hämtas).

Permalänk: https://www.webforum.nu/p/1787033

## #17 — trexter, 2006-03-24T12:47Z

Löste det.
1\. Bytade från OnClick till OnCommand
2\. Bytade på parametrarna i funktionen från EventArgs till CommandEventArgs
3\. Plockade fram värdet genom E.CommandArgument

 :)

Permalänk: https://www.webforum.nu/p/1787042

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/143900-object-reference-not-set-to-an-instance-of-an-object
