Hallo ich hab ein Problem beim Löschen eines Datensatzes aus der GridView bzw. aus der SQL Server DB. Und zwar hat meine Tabelle eine extra Spalte "Sprache" jede Zeile ist für eine andere Sprache.
Ich fülle jetzt mein GridView im C# Code wie folgt:
string sprache = Session["Sprache"].ToString();
SqlDataSource DS_Mehraufwand = new SqlDataSource();
DS_Mehraufwand.ConnectionString = "Data Source=(local);Database=Web_Stammdaten;Integrated Security=SSPI;";
DS_Mehraufwand.SelectParameters.Add("sprache", sprache);
DS_Mehraufwand.SelectCommand = "SELECT Id, System, Art, Manntage, LKWTage, Material FROM dbo.Mehraufwand WHERE Sprache = @sprache";
DS_Mehraufwand.ID = "DS_Mehraufwand";
Grid_Mehraufwand.DataSource = DS_Mehraufwand;
Grid_Mehraufwand.DataBind();
Das klappt alles prima NUN möchte ich aber je nachdem auch mal eine Zeile löschen. Also benötig ich ein DeleteCommand und da ist mein Problem! Wie bekomme ich das DeleteCommand in den obigen C# Code? Also mir ist schon klar dass der Befehl wie folgt aussieht
DeleteCommand = "DELETE FROM dbo.Mehraufwand WHERE Id = @Id"
ABER wie bekomm ich die Id von der zu löschenden Zeile?
Ich hab auch mal hier meinen asp.net2 Code für die GridView:
<asp:GridView ID="Grid_Mehraufwand" runat="server" AutoGenerateColumns="false"
AllowPaging="True" BackColor="Transparent" BorderColor="Black" DataKeyNames="Id"
ForeColor="Black" HorizontalAlign="Justify" OnRowDataBound="Grid_RowDataBound" BorderStyle="Inset"
EmptyDataText="<% $Resources:message, adminauswahl_Leer%>" AutoGenerateSelectButton="true" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="Delete" OnClientClick="return confirm('Sollen die Daten wirklich gelöscht werden?');"
Text="<% $Resources:message, loeschen %>" ForeColor="black"/>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="System" HeaderText="<% $Resources:message, adminauswahl_System %>" />
<asp:BoundField DataField="Art" HeaderText="<% $Resources:message, adminauswahl_Art %>" />
<asp:BoundField DataField="Manntage" HeaderText="<% $Resources:message, adminauswahl_Manntage %>"/>
<asp:BoundField DataField="LKWTage" HeaderText="<% $Resources:message, adminauswahl_LKWTage %>" />
<asp:BoundField DataField="Material" HeaderText="<% $Resources:message, adminauswahl_Material %>"/>
</Columns>
<HeaderStyle BackColor="Silver" BorderStyle="Inset" />
</asp:GridView>
OK ich hoffe es hat jemand verstanden was ich will![Smile :-) :-)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
Ich fülle jetzt mein GridView im C# Code wie folgt:
string sprache = Session["Sprache"].ToString();
SqlDataSource DS_Mehraufwand = new SqlDataSource();
DS_Mehraufwand.ConnectionString = "Data Source=(local);Database=Web_Stammdaten;Integrated Security=SSPI;";
DS_Mehraufwand.SelectParameters.Add("sprache", sprache);
DS_Mehraufwand.SelectCommand = "SELECT Id, System, Art, Manntage, LKWTage, Material FROM dbo.Mehraufwand WHERE Sprache = @sprache";
DS_Mehraufwand.ID = "DS_Mehraufwand";
Grid_Mehraufwand.DataSource = DS_Mehraufwand;
Grid_Mehraufwand.DataBind();
Das klappt alles prima NUN möchte ich aber je nachdem auch mal eine Zeile löschen. Also benötig ich ein DeleteCommand und da ist mein Problem! Wie bekomme ich das DeleteCommand in den obigen C# Code? Also mir ist schon klar dass der Befehl wie folgt aussieht
DeleteCommand = "DELETE FROM dbo.Mehraufwand WHERE Id = @Id"
ABER wie bekomm ich die Id von der zu löschenden Zeile?
Ich hab auch mal hier meinen asp.net2 Code für die GridView:
<asp:GridView ID="Grid_Mehraufwand" runat="server" AutoGenerateColumns="false"
AllowPaging="True" BackColor="Transparent" BorderColor="Black" DataKeyNames="Id"
ForeColor="Black" HorizontalAlign="Justify" OnRowDataBound="Grid_RowDataBound" BorderStyle="Inset"
EmptyDataText="<% $Resources:message, adminauswahl_Leer%>" AutoGenerateSelectButton="true" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="Delete" OnClientClick="return confirm('Sollen die Daten wirklich gelöscht werden?');"
Text="<% $Resources:message, loeschen %>" ForeColor="black"/>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="System" HeaderText="<% $Resources:message, adminauswahl_System %>" />
<asp:BoundField DataField="Art" HeaderText="<% $Resources:message, adminauswahl_Art %>" />
<asp:BoundField DataField="Manntage" HeaderText="<% $Resources:message, adminauswahl_Manntage %>"/>
<asp:BoundField DataField="LKWTage" HeaderText="<% $Resources:message, adminauswahl_LKWTage %>" />
<asp:BoundField DataField="Material" HeaderText="<% $Resources:message, adminauswahl_Material %>"/>
</Columns>
<HeaderStyle BackColor="Silver" BorderStyle="Inset" />
</asp:GridView>
OK ich hoffe es hat jemand verstanden was ich will
![Smile :-) :-)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)