Nutzung einer Datasource (Update)

15/04/2008 - 16:26 von Adrian Stern | Report spam
Hi

Ich möchte in der Datenbank etwas über eine SQLDataSource Updaten. Nur
Leider bekomme ich das nicht so recht hin.
Das Problem ist es an den Wert in einem Control zu Kommen.

Das Control versteckt sich in einer GridView:

<asp:TemplateField HeaderText="Rolle">
<ItemTemplate>
<asp:Label ID="lblRolle" runat="server" Text='<%# Bind("Rolle")
%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlRolle" runat="server"
DataSourceID="dataSrcRolle" DataValueField="IDPersonenStatus"
DataTextField="kuerzel">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>

Ich benötige den Wert "SelectedValue" von "ddlRolle".


Aus der DataSoure kann man die Parameter ja von verschiedenen Orten
holen. Unter anderem auch aus einem Control.
Ich gebe da also an aus welchem Control ich welchen wert Brauche.
Schlussendlich bekomme ich die Meldung, dass das Controll ddlRolle nicht
in IDPersonenStatus gefunden wurde...


Dann hab ich noch gelesen, dass man für ein erfolgreiches Update oder
Insert oder Delete das "DataKeyNames"- Property der GridView angeben muss.
Dies soll irgendwie ein Primary-Key aus der DB sein. Ich habe da also
einige Key ausprobiert, aber keinen Durchbrich erziehlt.


Im OnUpdating-Event der DataSource, hat die benötigte Tabelle 0 Rows ...
also komme ich da auch nicht an meine ersehnten Daten.

Und das allerbeste ... Ich habe ein Beispiel mit ziemlich genau diesem
Fall und da Funktioniertes. Ich schaffs aber nicht dies umzusetzen.
Das Beispiel hier noch Anzuhàngnen würde wohl den Rahmen sprengen.
Allerdings sehe ich da nicht den Knackpunkt.
Was klar ersichtlich ist:
- Die DataKeyNames sind angegeben.
- Der Wert aus der DropDownList wird nicht explizit angegeben.

Ich hoffe mir kann da Irgendjemand weiterhelfen.


mfg
Adrian Stern.
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
16/04/2008 - 07:06 | Warnen spam
Hallo Adrian,

"Adrian Stern"

Ich benötige den Wert "SelectedValue" von "ddlRolle".



Ich glaub nicht, dass das so funktioniert, weil deine DDL ja auch
in einer Zeile, bzw. Zelle des GridView steht. Ich würde das per
Code lösen und wenn ich schon dabei wàre, SqlDataSource und Co.
rausschmeißen.

Aus der DataSoure kann man die Parameter ja von verschiedenen Orten holen. Unter anderem auch aus einem Control.



Ggfs. hilft es, eine Property zu integrieren, die dir den Wert aus
der entsprechenden Zeile rausnimmt. Stellt sich nur noch die Frage,
wie man an die aktuelle Zeile rankommt. Die SqlDataSource dürfte das
eher nicht wissen.

Ich gebe da also an aus welchem Control ich welchen wert Brauche.
Schlussendlich bekomme ich die Meldung, dass das Controll ddlRolle nicht in IDPersonenStatus gefunden wurde...



Den verwendeten Code und die genaue Fehlermeldung sollten wir schon
wissen. Sonst muss die Glaskugel bemüht werden und die hat (mal wieder)
ihre Tage :)

Dann hab ich noch gelesen, dass man für ein erfolgreiches Update oder Insert oder Delete das "DataKeyNames"- Property der GridView
angeben muss.
Dies soll irgendwie ein Primary-Key aus der DB sein. Ich habe da also einige Key ausprobiert, aber keinen Durchbrich erziehlt.



Hat deine Tabelle denn einen Primàrschlüssel? Falls ja, nimm den Namen
der entsprechenden Spalte(n).

Und das allerbeste ... Ich habe ein Beispiel mit ziemlich genau diesem Fall und da Funktioniertes. Ich schaffs aber nicht dies
umzusetzen.
Das Beispiel hier noch Anzuhàngnen würde wohl den Rahmen sprengen.



Eine umfangreiche Suche anhand der knappen Angaben ebenso.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen