---
title: "Update parameter som strular"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/60017-update-parameter-som-strular"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "erka"
published: "2002-11-23T17:49:38.000Z"
updated: "2002-11-25T21:11:07.000Z"
replies: 13
views: 433
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/60017-update-parameter-som-strular"
---

# Update parameter som strular

## #1 — erka, 2002-11-23T17:49Z

Jag har en repeater som skriver ut värden i 10 textfält, klickar man på knappen i formuläret som repetern ligger i körs en update sub.

Problemet är att någe blir fel när jag skickar in parametrarna.

För att försöka underlätta ska jag bara försöka uppdatera ett av textfälten nu.

Textfältet skrivs ut med följande

```
<asp:TableRow RunAt="server">
<asp:TableCell RunAt="server">
<asp:textbox Columns="108" cssClass="FormFalt" 
ID="strPresentation" Rows="6" runat="server" 
TextMode="MultiLine" Text='<%# Container.DataItem
("UsrPresentation") %>'  />	
</asp:TableCell>
</asp:TableRow>
```

koden för att lägga till parametern är

```
cmdUpdate.Parameters.Add("@UsrPresentation", strPresentation.Text)
```

den klagar på 
Compiler Error Message: BC30451: Name 'strPresentation' is not declared.

jag kan ju lösa det genom att deklarera i subben
Din strPresentation as String = Request.Params("strPresentation")

och sedan skriva 

```
cmdUpdate.Parameters.Add("@UsrPresentation", strPresentation)
```

tror jag iaf att man kan, men i mitt exempel i min asp.net bok så skriver de enbart 

```
cmdUpdate.Parameters.Add("@UsrPresentation", strPresentation.Text)
```

Varför fungerar det inte för mig ?

Tacksam

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

## #2 — Pace, 2002-11-23T18:42Z

Är strPresentation någon form av webbkontroll/objekt?
Om inte så får du ta och hämta datan från Request objektet.

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

## #3 — erka, 2002-11-23T22:57Z

strPresentation är ju en webkontroll i form av textbox

\<asp:textbox Columns="108" cssClass="FormFalt" 
ID="strPresentation" Rows="6" runat="server" 
TextMode="MultiLine" Text='\<%# Container.DataItem
("UsrPresentation") %\>'  /\>

Men det funkar inte, darn

Skriver jag så här
cmdUpdate.Parameters.Add("@UsrPresentation", Request.Params("strPresentation"))

så får jag

Exception Details: System.Data.SqlClient.SqlException: Prepared statement '(@UsrPresentation nvarchar(4000))UPDATE LL_users SET UsrPresenta' expects parameter @UsrPresentation, which was not supplied.

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

## #4 — Pace, 2002-11-24T13:11Z

Om du använder codebehind så måste du deklarera strPresentation som en publik textbox.

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

## #5 — erka, 2002-11-24T17:00Z

Nope nada codebehind på denna sida. Skickar med hela som en txt fil. Får meddelandet

Exception Details: System.Data.SqlClient.SqlException: Prepared statement '(@UsrPresentation nvarchar(4000))UPDATE LL_users SET UsrPresenta' expects parameter @UsrPresentation, which was not supplied.

Tacksam

Bilagor:

- [installningar_profil.txt](https://www.webforum.nu/a/744.txt)

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

## #6 — P, 2002-11-24T17:02Z

hmm du måste inte importera System.Data?

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

## #7 — erka, 2002-11-24T17:05Z

Såg att jag inte hade med den nu, dock får jag ändå samma felmeddelande \<%@ import Namespace="System.Data" %\>

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

## #8 — NETwork, 2002-11-24T17:44Z

Du måste nog ge UsrPresentation ett värde så här:

```
cmdUpdate.Parameters.Add(new SqlParameter("@UsrPresentation", SqlDbType.NVarChar, 50));
cmdUpdate.Parameters["@UsrPresentation"].Value = Request.Params("strPresentation");
```

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

## #9 — erka, 2002-11-24T18:42Z

Har provat det också men får fortfarande

Exception Details: System.Data.SqlClient.SqlException: Prepared statement '(@UsrPresentation nvarchar(800))UPDATE LL_users SET UsrPresentat' expects parameter @UsrPresentation, which was not supplied.

Då anger jag 

```
		Dim strSQL As String = String.Format("UPDATE LL_users SET UsrPresentation = @UsrPresentation WHERE (PK_UsrId = "+ IntUsrId +")")
		Dim strPresentation As String = Request.Params("strPresentation")
		ConMyData = New SqlConnection(strConn)
		cmdUpdate = NEW SqlCommand(strSQL,conMyData)
	    cmdUpdate.Parameters.Add(new SqlParameter("@UsrPresentation", SqlDbType.NVarChar,800))
		cmdUpdate.Parameters("@UsrPresentation").Value = Request.Params("strPresentation")
		ConMyData.Open()
		cmdUpdate.ExecuteNonQuery()
		ConMyData.Close()
```

Känns som om man blir galen snart :( kan man inte skriva som man gjorde i klassisk asp, alltså skriver variablen med innehållet direkt i frågan, men då måste jag ju ta bort ' tecken och ersätta dem med '', det skulle tydligen fixas automatiskt om man gör det med parametrar, men varför fungerar det inte tro

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

## #10 — NETwork, 2002-11-24T19:05Z

Har du skrivit ut Request.Params("strPresentation") och kollat  vad den innehåller?

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

## #11 — erka, 2002-11-24T19:11Z

Ooops den innehåller ingenting, vad i hela friden kan det bero på

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

## #12 — NETwork, 2002-11-24T19:37Z

Eftersom du har din kontroll i en kontroll (din textbox i en repeater) så måste du gå via din repeater för att hitta din textbox... typ nåt i den här stilen (fritt skrivet, säkert fel, men du kanske förstår principen):

```
((TextBox)MyRepeater.Items[e.Item.ItemIndex].FindControl("strPresentation")).Text
```

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

## #13 — erka, 2002-11-25T18:59Z

Neh nu blir jag snart galen :) Lyckas inte komma åt strPresentation på det vägen heller. Jag skulle kunna göra så kanske om jag kunde få e att bli RepeaterItemEventArgs, men det lyckas jag ju inte göra eftersom man ska klicka på min imgbutton och köra OnClick på den,usch vad det här var struligt

Har nu lagt min  \<asp:ImageButton\> inne i min repeater \</ItemTemplate\> för jag antar att den måste vara där om jag på något sätt ska samköra dem

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

## #14 — NETwork, 2002-11-25T21:11Z

Hm, vänta nu här... kommer du någonsin att hämta mer än en rad från din databas??? Har du alltid en användare med en uppsättning data!? Då behöver du ingen repeater! Bort med den, kasta in användaruppgifterna i dina textboxar direkt så är det inga problem att spara sen! Det jag skrev ovan kan du glömma, ser att din button inte ligger i din repeater... :)

Om du nu skulle ha en knapp i din repeater någon gång i framtiden så kan du sätta ett commandargument på den för att enkelt veta vilken knapp som blivit tryckt på, exempelvis:

```
<asp:ImageButton CommandArgument='<%# Container.DataItem("ID") %>' runat="server"></asp:ImageButton>
```

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/60017-update-parameter-som-strular
