selfhtml.de - Alles für den Webmaster!

 

Empfehlung:

wix.com

Kostenlose Homepage

Besuchen Sie auch:

Jobs:

Update und Delete in GridView wirft Exception

Autor: Maendler
Datum: 11.06.2009 06:57:56

Ich habe ein Problem mit dem Update- und dem Delete-Befehl mit einem GridvView-Contrl.

Obschon ich seit Jahren VB.Net Programmiere ist dies mein erstes ASP.Net Projekt.
Das ganze basiert auf einer Dreischicht - Architektur und die Daten sind Objekte. Der Gridview greift auf eine OjectDataSource zu.

Auf der ASPX-Seite sind der GridView und die ObjectDataSource wie folgt Deklariert.

<asp:GridView ID="grdCardShop" runat="server" AutoGenerateColumns="False" _
  DataKeyNames="ProductNr" DataSourceID="dsShopingCard"
Height="224px" ShowFooter="True" ShowHeader="False" Width="728px" _
AutoGenerateEditButton="True">
       <Columns>
          <asp:BoundField DataField="ProductNr" HeaderText="ProductNr" _
            ReadOnly="True" SortExpression="ProductNr" />
          <asp:BoundField DataField="Name" HeaderText="Name" ReadOnly="True" _
          SortExpression="Name" />
          <asp:BoundField DataField="Count" HeaderText="Count" _
          SortExpression="Count" />
          <asp:BoundField DataField="Price" HeaderText="Price" ReadOnly="True" _
          SortExpression="Price" />
          <asp:BoundField DataField="Sum" HeaderText="Sum" ReadOnly="True" _
          SortExpression="Sum" />
       </Columns>
   <EditRowStyle BackColor="NavajoWhite" />
</asp:GridView>

<asp:ObjectDataSource ID="dsShopingCard" runat="server" _
   DataObjectTypeName="SShopingCardList"
DeleteMethod="Delete" InsertMethod="Insert" SelectMethod="Select" _
UpdateMethod="Edit">
       <InsertParameters>
            <asp:Parameter Name="productNr" Type="String" />
       </InsertParameters>
</asp:ObjectDataSource>

Der Parameter TypeName wird im Form_Load mitgegeben.

Die Klasse die schlussendlich die DataSource stellt, sieht gekürzt so aus.

Public Class CShopingCardList

    Public Shared Function [Select]() As List(Of SShopingCardList)
        Return _lstShopingCardList
    End Function

    Public Shared Sub Delete(ByVal shopingCard As SShopingCardList)

        _currentShopingCard = shopingCard

        Dim found As SShopingCardList = _lstShopingCardList.Find(AddressOf _
          MatchShopingCardID)

        _lstShopingCardList.Remove(found)


    End Sub

    Public Shared Sub Edit(ByVal shopingCard As SShopingCardList)

        For Each sc As SShopingCardList In _lstShopingCardList
            If sc.ProductNr = shopingCard.ProductNr Then
                sc.Count = shopingCard.Count
            End If
        Next

    End Sub

End Class

Nun bekomme ich beim Update eine Exception mit diesem Wortlaut:

[InvalidOperationException: Die Name-Eigenschaft für den Typ, der durch die DataObjectTypeName-Eigenschaft in ObjectDataSource dsShopingCard angegeben wird, ist schreibgeschützt und ihr Wert kann nicht festgelegt werden.]

Nun kann ich die Fehlermeldung nicht interpretieren. Ist der Fehler im der Datenklasse oder in der Struktur in welcher die Daten eingelesen werden oder in der Aspx-Seite

Gruss Mändler

PS Dies ist bewusst ein Crossposting, da ich in der andern News-Gruppe auch nach 2 tagen noch keine Antwort erhslten habe. Ich hoffe das ich hier eine Antwort bekomme.