GridView RowUpdating SqlDataSource.Update von CodeBehind
So, ich habe ein Problem mit dem update eine in einem Gridview während einer OnRowUpdating Veranstaltung.
Was ich versuche zu tun, ist das UpdateCommand in ein SqlDataSource-dann update mit diesem Befehl. Das Ereignis wird ausgelöst, okay, aber wenn das Ereignis ist geschehen, es scheint, dass die Reihe noch nie updates.
C#:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
SqlDataSource1.UpdateCommand = "UPDATE A_Table SET Something = @AValue WHERE ID = " + e.RowIndex;
SqlDataSource1.Update();
}
Edit: Re-schrieb mein Beispiel update-Befehl...ist es wirklich ein update-Befehl nicht ein Befehl select haha.
Sollten Sie nicht haben, etwas zu tun in der
ist richtig; wenn Sie die
RowUpdating
Ereignis, wenn Sie die DataKeyNames
für die GridView
(und Sie haben die UpdateCommand
definiert in der SQLDataSource1
markup). Aufruf der Update()
Methode hier dazu führen, dass die UPDATE
zweimal auftreten.ist richtig; wenn Sie die
DataKeyNames
einrichten, aufrufen Update()
von der RowUpdating
handler bewirkt, dass ein StackOverflowExeption!InformationsquelleAutor Derrick H | 2011-10-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den anderen Antworten hier sind SEHR korrekt, den Hinweis auf das Problem mit Ihrem
UpdateCommand
.Wie ich bereits im Kommentar erwähnt, werde ich nur darauf hinweisen, dass dies ein wenig einfacher als das was du da hast. Bei Verwendung eines
GridView
mit einemSQLDataSource
, viel Arbeit ist getan für Sie, solange Sie korrekt eingerichtet.Erstes, definieren Sie Ihre
UpdateCommand
im markup für dieSQLDataSource
wie diese:(
ColPK
wäre der Primärschlüssel der Tabelle, die Sie aktualisieren)Dann können Sie "AutoGenerateEditButton" wahr in Ihrem GridView-markup und, Puff! Sie können aktualisieren Sie die
GridView
(ohne nichts zu tun in der code-behind).Nun können Sie noch umgehen
OnRowUpdating
Ereignis in Ihrem code, wenn Sie tun müssen, um zusätzliche Verarbeitung, oder brechen Sie denUpdate
basiert auf logic, etc. Aber die basic-Update-Funktion ist ziemlich viel für gratis!Sie sind sehr willkommen!
InformationsquelleAutor Josh Darnell
Ihre UpdateCommand soll eine
UPDATE
Befehl, nicht einSELECT
Befehl.Ändern, die Linie, etwas näher an:
Finden Sie in diesem msdn-link für mehr info auf, wie Sie mit der UpdateCommand:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.updatecommand.aspx
InformationsquelleAutor Kiley Naro
Zunächst
UpdateCommand
shouln ' T werden, wieUPDATE A_Table SET ID = .. WHERE ...
?Ich denke, dass Ihnen etwas fehlt. Lesen Einfügen, Aktualisieren, Bearbeiten Datensatz Löschen " im GridView. Dies ist ein großer Artikel für Sie.
EDIT: Wie Kiley sagen: Versuchen
SqlDataSource1.UpdateCommand = "UPDATE A_Table SET Something = @Something WHERE ID = " + e.RowIndex;
InformationsquelleAutor Soner Gönül