Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[VS2008] Delete function werkt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

ik ben in visual Studio 2008 een beheer tooltje aan het schrijven. Onderstaand een simpel Detailsview waar je een stukje tekst kan toevoegen/ bewerken/verwijderen. Dat laatste lukt niet.
De foutmelding is:

Serverfout in toepassing /.
--------------------------------------------------------------------------------

Must declare the variable '@Id'.
Beschrijving: Er is een onverwerkte uitzondering opgetreden tijdens het uitvoeren van de huidige webaanvraag. Raadpleeg de stacktracering voor meer informatie over deze fout en de oorsprong ervan in de code.

Details van uitzondering: System.Data.SqlClient.SqlException: Must declare the variable '@Id'.

Fout in bron:

Er is een onverwerkte uitzondering gegenereerd tijdens het uitvoeren van de huidige webaanvraag. Aan de hand van de onderstaande tracering van de uitzonderingsstack kunt u meer informatie verkrijgen over de oorsprong en de locatie van de uitzondering.

Hieronder de code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
                    <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" 
                        DataSourceID="SqlDataSource2" Height="50px" Width="125px" 
                        AllowPaging="True" BackColor="#CCCCCC" BorderColor="#999999" 
                        BorderStyle="Solid" BorderWidth="3px" CellPadding="4" CellSpacing="2" 
                        ForeColor="Black">
                        <FooterStyle BackColor="#CCCCCC" />
                        <RowStyle BackColor="White" />
                        <PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Left" />
                        <Fields>
                            <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" 
                                ShowInsertButton="True" CancelText="Annuleren" DeleteText="Verwijderen" 
                                EditText="Bewerken" InsertText="Toevoegen" NewText="Nieuw" 
                                UpdateText="Opslaan" />
                            <asp:BoundField DataField="Id" HeaderText="Id" />
                            <asp:BoundField DataField="Titel" HeaderText="Titel" />
                        </Fields>
                        <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
                        <EditRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
                    </asp:DetailsView>

        <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
            ConnectionString="<%$ ConnectionStrings:xxxxxxxxxxxxxx %>" 
            SelectCommand="SELECT * FROM Overzicht_Tekst"
            UpdateCommand="UPDATE Overzicht_Tekst SET Titel = @Titel Where Id = @Id"
            DeleteCommand="DELETE FROM Overzicht_Tekst Where Id = @Id"
            InsertCommand="INSERT into Overzicht_Tekst (Titel) values (@Titel)">
         </asp:SqlDataSource>


De update werkt wel, de insert ook. Ik zie niet niet waarom de Delete dan ook niet werkt, omdat de update functie ook met dezelfde Id werkt.

  • Face_-_LeSS
  • Registratie: September 2004
  • Niet online
Even ergens diep vanuit mijn achterhoofd,

Heb je de parameter @Id gedeclareerd in de lijst van parameters van de SQLDataSource/Command

Verwijderd

Topicstarter
Dit is alles wat ik heb, maar Update doet hij wel en daar staat toch ook in Id = @Id. Vul ik een getal in ivp @Id, dan werkt het wel goed.

Het commando werkt dus

[ Voor 32% gewijzigd door Verwijderd op 25-09-2008 14:18 ]


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 15-11 12:29

sopsop

[v] [;,,;] [v]

Moet je geen DataKeyNames property gebruiken in de defenitie van je detailsview?

Dus:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<asp:DetailsView 
             ID="DetailsView1" 
             runat="server" 
             AutoGenerateRows="False" 
             DataSourceID="SqlDataSource2" 
             DataKeyNames="Id"
             Height="50px" 
             Width="125px" 
             AllowPaging="True" 
             BackColor="#CCCCCC" 
             BorderColor="#999999" 
             BorderStyle="Solid" 
             BorderWidth="3px" 
             CellPadding="4" 
             CellSpacing="2" 
             ForeColor="Black"
             >

[ Voor 77% gewijzigd door sopsop op 25-09-2008 14:55 ]


Verwijderd

Topicstarter
sopsop schreef op donderdag 25 september 2008 @ 14:50:
Moet je geen DataKeyNames property gebruiken in de defenitie van je detailsview?

Dus:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<asp:DetailsView 
             ID="DetailsView1" 
             runat="server" 
             AutoGenerateRows="False" 
             DataSourceID="SqlDataSource2" 
             DataKeyNames="Id"
             Height="50px" 
             Width="125px" 
             AllowPaging="True" 
             BackColor="#CCCCCC" 
             BorderColor="#999999" 
             BorderStyle="Solid" 
             BorderWidth="3px" 
             CellPadding="4" 
             CellSpacing="2" 
             ForeColor="Black"
             >
Het is C# (Sorry, dat ik niet gezegd)

Hij doet het!, bedankt

[ Voor 3% gewijzigd door Verwijderd op 25-09-2008 15:09 ]