Я сейчас переписываю старый скрипт на VB. net в C#. У меня есть DataGrid и кнопка Удалить в каждой строке. Я хочу передать данный Id (KeyphraseToBrandId) в OnDeleteCommand, чтобы удалить эту строку в базе данных. У меня проблемы с определением этого ряда.
Вот мой MyDataGrid_DeleteCommand, который показывает все, что я пробовал, которые не работали, в качестве комментариев:
protected void MyDataGrid_DeleteCommand(object source, DataGridCommandEventArgs e)
{
String connStr = ConfigurationSettings.AppSettings["ConnectionString"];
// Define db connection
MySqlConnection conn = new MySqlConnection(connStr);
String DeleteSql = "DELETE from KeyphrasesToBrands WHERE KeyphraseToBrandId=?KeyphraseToBrandId";
MySqlCommand DeleteCommand = new MySqlCommand(DeleteSql, conn);
// DeleteCommand.Parameters.Add("?KeyphraseToBrandId", MyDataGrid.DataKeys(CInt(E.Item.ItemIndex)));
// This works for Id 8, so it's not the rest of the code
// DeleteCommand.Parameters.Add("?KeyphraseToBrandId", "8");
// DeleteCommand.Parameters.Add("?KeyphraseToBrandId", MyDataGrid.SelectedDataKey.Value.ToString());
// DeleteCommand.Parameters.Add("?KeyphraseToBrandId", MyDataGrid.DataKeys.Equals(e.Item.ItemIndex));
// DeleteCommand.Parameters.Add("?KeyphraseToBrandId", e.Item.ItemIndex.ToString());
// DeleteCommand.Parameters.Add("?KeyphraseToBrandId", e.Item.ItemIndex);
// DeleteCommand.Parameters.Add("?KeyphraseToBrandId", e.CommandArgument.ToString());
// DeleteCommand.Parameters.Add("?KeyphraseToBrandId", e.Item.Cells[0].ToString());
DeleteCommand.Parameters.Add("?KeyphraseToBrandId", e.CommandArgument);
DeleteCommand.Connection.Open();
DeleteCommand.ExecuteNonQuery();
BindGrid();
DeleteCommand.Connection.Close();
}
... и вот мой DataGrid:
<asp:DataGrid ID="MyDataGrid" runat="server" DataKeyField="KeyphraseToBrandId" OnCancelCommand="MyDataGrid_CancelCommand" OnDeleteCommand="MyDataGrid_DeleteCommand" OnSelectedIndexChanged="MyDataGrid_SelectedIndexChanged" AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn DataField="KeyphraseText" HeaderText="Keyphrase Text"></asp:BoundColumn>
<asp:BoundColumn DataField="BrandName" HeaderText="Brand Name"></asp:BoundColumn>
<asp:BoundColumn DataField="KeyphraseToBrandId" HeaderText="Keyphrase To Brand Id"></asp:BoundColumn>
<asp:ButtonColumn ButtonType="PushButton" Text="Delete" CommandName="Delete" HeaderText="Delete?" />
</Columns>
</asp:DataGrid>
Как передать KeyphraseBrandId в команду удаления, чтобы идентифицировать эту строку для удаления в базе данных?
Спасибо