Anzeige: Goneo - Du machst das Web!
Anzeige: united-domains - Die ganze Welt der Domains
Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.
Jetzt Domain-Check bei united-domains!
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.