2009-03-10 20 views
0

1) Warum können Datensätze (über die Datenquellensteuerung) aktualisiert werden, ohne die GridView.DataKeyNames-Eigenschaft festzulegen, aber beim Löschen (und wenn die ConflictDetection-Eigenschaft auf OverwriteChanges festgelegt ist) müssen DataKeyNames festgelegt werden sonst GridView übergibt Parameter nicht an Datenquellensteuerung?Löschen eines Datensatzes (mit GridView)

Danke

Antwort

1

Ich denke, dass die documentation es am besten erklärt. Es besagt, dass die DataKeyNames-Eigenschaft "ein Array ist, das die Namen der Primärschlüsselfelder enthält".

Wenn Sie die Gridview ändern, werden die Werte aus der Zeile dynamisch erstellt und an die Datenquelle übergeben. Beim Löschen wird davon ausgegangen, dass nur die Primärschlüssel benötigt werden. Praktischerweise werden diese in den DataKeys für diese Zeile gespeichert, sodass sie die einzigen Werte sind, die Sie erhalten.

2

GridView verwendet DataKeyNames als Bezeichner für die Datensätze, die Sie bearbeiten möchten. Genau wie Primärschlüssel an Ihren Tischen. Sie werden grob für die WHERE-Klausel Ihrer Operation verwendet.

Verwandte Themen