J'essaie de supprimer une ligne de la grille et de la base de données ... Il doit être supprimé si un bouton de lien delte est cliqué dans le gridview .. Je suis dans l'index des lignes comme suit :Supprimer la ligne de la grille sélectionnée et de la base de données
protected void LinkButton1_Click(object sender, EventArgs e)
{
LinkButton btn = (LinkButton)sender;
GridViewRow row = (GridViewRow)btn.NamingContainer;
if (row != null)
{
LinkButton LinkButton1 = (LinkButton)sender;
// Get reference to the row that hold the button
GridViewRow gvr = (GridViewRow)LinkButton1.NamingContainer;
// Get row index from the row
int rowIndex = gvr.RowIndex;
string str = rowIndex.ToString();
//string str = GridView1.DataKeys[row.RowIndex].Value.ToString();
RemoveData(str); //call the delete method
}
}
maintenant je veux le supprimer ... donc je rencontre des problèmes avec ce code .. je reçois une erreur
doit déclarer la variable scalaire « @original_MachineGroupName » ... des suggestions
private void RemoveData(string item)
{
SqlConnection conn = new SqlConnection(@"Data Source=JAGMIT-PC\SQLEXPRESS;
Initial Catalog=SumooHAgentDB;Integrated Security=True");
string sql = "DELETE FROM [MachineGroups] WHERE [MachineGroupID] =
@original_MachineGroupID;
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@original_MachineGroupID", item);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
Blockquote
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:SumooHAgentDBConnectionString %>"
SelectCommand="SELECT MachineGroups.MachineGroupID, MachineGroups.MachineGroupName,
MachineGroups.MachineGroupDesc, MachineGroups.TimeAdded,
MachineGroups.CanBeDeleted, COUNT(Machines.MachineName) AS Expr1,
DATENAME(month, (MachineGroups.TimeAdded - 599266080000000000)/864000000000) +
SPACE(1) + DATENAME(d, (MachineGroups.TimeAdded - 599266080000000000)/
864000000000) +
', ' + DATENAME(year, (MachineGroups.TimeAdded - 599266080000000000)/
864000000000) AS Expr2 FROM MachineGroups FULL OUTER JOIN Machines ON
Machines.MachineGroupID = MachineGroups.MachineGroupID GROUP BY
MachineGroups.MachineGroupID, MachineGroups.MachineGroupName,
MachineGroups.MachineGroupDesc, MachineGroups.TimeAdded,
MachineGroups.CanBeDeleted"
DeleteCommand="DELETE FROM [MachineGroups] WHERE
[MachineGroupID] [email protected]_MachineGroupID" >
<DeleteParameters>
<asp:Parameter Name="@original_MachineGroupID" Type="Int16" />
<asp:Parameter Name="@original_MachineGroupName" Type="String" />
<asp:Parameter Name="@original_MachineGroupDesc" Type="String" />
<asp:Parameter Name="@original_CanBeDeleted" Type="Boolean" />
<asp:Parameter Name="@original_TimeAdded" Type="Int64" />
</DeleteParameters>
</asp:SqlDataSource>
Je reçois encore une erreur: doit déclarer la variable scalaire "@original_MachineGroupID
"
donc j'ai besoin de passer toutes les valeurs comme itemname, itemdesc et ainsi de suite .. individuellement ?? Je suis juste en train de supprimer le numéro de ligne à supprimer .. Existe-t-il une méthode plus simple pour ce faire .. Merci – user175084
Eh bien, votre requête de suppression vérifie spécifiquement ces choses. Ma conjecture est que la rangée ne peut pas être identifiée de manière unique sans toutes ces informations. Vous devez soit simplifier votre requête de suppression pour exiger uniquement l'ID, soit vous devez lui transmettre toutes les informations dont il a besoin. – womp
J'ai simplifié la requête de suppression comme ci-dessus .. stll il ne supprime pas .. est-ce la seule façon de supprimer des lignes ... s'il vous plaît aider – user175084