Fehler bei ObjectDataSource mit ConflictDetection="CompareAllValues" Delete

07/10/2007 - 01:05 von Uwe Lesta | Report spam
Crosspost from: Fri, 05 Oct 2007 13:14:59 +0200 : microsoft.public.de.german.entwickler.dotnet.csharp


Hallo NG,

Beim OnDelete bekomme ich die fehlermeldung

// "Sie haben angegeben, dass die löschen-Methode alle Werte in ObjectDataSource "_ObjectDataSource1"
// vergleicht, doch das für oldValues übergebene Wörterbuch ist leer. Übergeben Sie ein gültiges
// Wörterbuch für löschen, oder àndern Sie den Modus in OverwriteChanges."

Leider wir diese vor OnDeleting ausgelöst.

Was mach ich falsch bzw. wie kann ich das àndern ??


Ich benutze eine ObjectDataSource

<asp:ObjectDataSource ID="_ObjectDataSource1" runat="server"

DeleteMethod="Delete"
UpdateMethod="Update"
InsertMethod="Insert"
SelectMethod="SelectAll"
DataObjectTypeName="LibraryPV.Criteria"
OldValuesParameterFormatString="original_Criteria"
ConflictDetection="CompareAllValues"
TypeName="PvWeb.AppCode.CriteriaListProfileWrapper"
OnDeleting="ODS_OnDeleting"




</asp:ObjectDataSource>

Den Methoden wird ein object übergeben

public void Update(Criteria item, Criteria original_Criteria)
{
string original_Name2 = original_Criteria.Name;
if (string.IsNullOrEmpty(item.Name))
throw new ArgumentException("Name darf nicht leer sein!");
else
PVTableProfileWrapper.PVTable.UpdateCriteria(original_Name2, item.Name, item.Description,
item.Ord);
}
}


public void Delete(Criteria item)
{
PVTableProfileWrapper.PVTable.DeleteCriteria(item.Name);
}


Kind regards

Uwe
Lesta at SBS-Softwaresysteme.de



Kind regards

Uwe Lesta


Telefon: +49(531) 38747-14
Fax: +49(531) 38747-17
E-Mail: Lesta at sbs-softwaresysteme.de


SBS-Softwaresysteme GmbH Geschàftsführer:
Jasperalleee 13 Klaus Wagner
D -38102 Braunschweig
Tel.: +49(531) 38747-0


Handelsregister Sitz der Gesellschaft:
Amtsgericht Braunschweig HRB 4481 38102 Braunschweig
Steuernummer: 14/201/32196
 

Lesen sie die antworten

#1 Peter Fleischer
07/10/2007 - 21:10 | Warnen spam
Uwe Lesta wrote:

Beim OnDelete bekomme ich die fehlermeldung

// "Sie haben angegeben, dass die löschen-Methode alle Werte in
ObjectDataSource "_ObjectDataSource1" // vergleicht, doch das für
oldValues übergebene Wörterbuch ist leer. Übergeben Sie ein gültiges
// Wörterbuch für löschen, oder àndern Sie den Modus in
OverwriteChanges."
Leider wir diese vor OnDeleting ausgelöst.

Was mach ich falsch bzw. wie kann ich das àndern ??



Hi Uwe,
ich habe das Szenario mal nachgestellt und kann den Fehler nicht
reproduzieren. Die Unterschiede bei mir sind die Angabe von
DataKeyNames="..." beim Grid und die Parameter in der ObjectDataSource.
DataKeyNames ist notwendig, damit Delete ein Objekt mit einer Kennung
bekommt, die für das Löschen benötigt wird. Die Paremeter werden benötigt,
um ggf. lokale Einstellungen bei der Konvertierung zu berücksichtigen.


Viele Grüße

Peter

Ähnliche fragen