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 [Beiträge: 1]
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.
Zum Abschicken deines Beitrags bitte die Schaltfläche "Abschicken" nur einmal anklicken und warten. Der Server braucht manchmal
einige Zeit, bis er den Beitrag in die Datenbank übernommen hat. Wenn du die Schaltfläche mehrmals drückst, erscheint dein Beitrag
auch mehrmals im Forum.
Bewerten Sie Ihren Webhosting-Provider
Wie zufrieden sind Sie mit Ihrem Webhosting-Provider? Gibt es Probleme beim Service, mit der Performance oder der Abrechnung?
Teilen Sie jetzt Ihre Erfahrungen mit anderen Webmastern und schreiben Sie eine Provider-Bewertung. Mit etwas Glück können Sie ein Apple iPad gewinnen!
Weitere Informationen und Teilnahme...