C# 未从数据库asp.net中删除项目
我正在使用实体框架来填充网格,但我正在尝试删除该项,但没有错误,只是没有任何操作 我的网格如下所示,不知道问题是什么,因为我使用的是类型播放器,所以它应该被删除 我没有这方面的任何进展。有人能帮我一下吗C# 未从数据库asp.net中删除项目,c#,entity-framework,linq,telerik,C#,Entity Framework,Linq,Telerik,我正在使用实体框架来填充网格,但我正在尝试删除该项,但没有错误,只是没有任何操作 我的网格如下所示,不知道问题是什么,因为我使用的是类型播放器,所以它应该被删除 我没有这方面的任何进展。有人能帮我一下吗 <telerik:RadGrid ID="grdSoccerPlayers" runat="server" AutoGenerateColumns="False" GroupPanelPosition="Top" AutoGenerateDeleteColumn="True"
<telerik:RadGrid ID="grdSoccerPlayers" runat="server" AutoGenerateColumns="False" GroupPanelPosition="Top" AutoGenerateDeleteColumn="True" AutoGenerateEditColumn="True" OnItemCommand="grdSoccerPlayers_ItemCommand" CellSpacing="-1" GridLines="Both" AllowAutomaticDeletes="True">
<MasterTableView CommandItemDisplay="Top">
<Columns>
<telerik:GridBoundColumn DataField="id" DataType="System.Guid" FilterControlAltText="Filter id column" HeaderText="id" ReadOnly="True" SortExpression="id" UniqueName="id">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Name" FilterControlAltText="Filter Name column" HeaderText="Name" ReadOnly="True" SortExpression="Name" UniqueName="Name">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="player_id" FilterControlAltText="Filter player_id column" HeaderText="player_id" ReadOnly="True" SortExpression="player_id" UniqueName="player_id">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="gender" FilterControlAltText="Filter gender column" HeaderText="gender" ReadOnly="True" SortExpression="gender" UniqueName="gender">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="town" FilterControlAltText="Filter town column" HeaderText="town" ReadOnly="True" SortExpression="town" UniqueName="town">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="telephone" FilterControlAltText="Filter telephone column" HeaderText="telephone" ReadOnly="True" SortExpression="telephone" UniqueName="telephone">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="email" FilterControlAltText="Filter email column" HeaderText="email" ReadOnly="True" SortExpression="email" UniqueName="email">
</telerik:GridBoundColumn>
<telerik:GridCheckBoxColumn DataField="active" DataType="System.Boolean" FilterControlAltText="Filter active column" HeaderText="active" ReadOnly="True" SortExpression="active" UniqueName="active">
</telerik:GridCheckBoxColumn>
<telerik:GridBoundColumn DataField="createdDate" DataType="System.DateTime" FilterControlAltText="Filter createdDate column" HeaderText="createdDate" ReadOnly="True" SortExpression="createdDate" UniqueName="createdDate">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="author" FilterControlAltText="Filter author column" HeaderText="author" ReadOnly="True" SortExpression="author" UniqueName="author">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="teamId" DataType="System.Guid" FilterControlAltText="Filter teamId column" HeaderText="teamId" ReadOnly="True" SortExpression="teamId" UniqueName="teamId">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="address" FilterControlAltText="Filter address column" HeaderText="address" ReadOnly="True" SortExpression="address" UniqueName="address">
</telerik:GridBoundColumn>
<telerik:GridButtonColumn CommandName="Delete" Text="Delete" UniqueName="Delete"
ButtonType="ImageButton" ImageUrl="~/Icons/delete.png" AutoPostBackOnFilter="true" HeaderText="Actions"
ConfirmTitle="Delete" ConfirmDialogType="Classic"
ConfirmText="Are you sure want to delete the selected player?" />
</Columns>
</MasterTableView>
</telerik:RadGrid>
if (e.CommandName == "Delete")
{
GridDataItem item = e.Item as GridDataItem;
Guid strId = new Guid(item.GetDataKeyValue("id").ToString());
player _player = _dal.GetPlayerBYID(strId);
_dal.SoccerEntities.AddToplayers(_player);
_dal.SoccerEntities.DeleteObject(_player);
_dal.SoccerEntities.SaveChanges();
grdSoccerPlayers.DataBind();
grdSoccerPlayers.Rebind();
}
我猜你错过了一个命令。查看此控件的文档 你为什么要使用GUID?为什么不使用主键或像唯一值这样的简单标识类型?GUID是问题所在,请按原样使用ID。您要删除的项目是否是另一个表的外键?如果该项是另一个表中的外键,SQL将停止您。一支球队可以有很多球员,但球员不是外键self@Timmy如上所述,一个球员可以在一个团队中,即一个团队可以有很多球员,但可以退出that@TranscendentGuid不是问题所在,它是一个unqiue值!不,我没有丢失它。请查看代码并理解我在item命令上手动调用delete object
public player GetPlayerBYID(Guid _playerId)
{
try
{
if (_playerId == Guid.Empty)
{
player _player = new player();
_player.player_id = "16-56-232";
return _player;
}
else
{
var q = SoccerEntities.players.Where(p => p.id == _playerId);
if (q == null)
throw new EntityContextException(string.Format("A player could not be found {0}!", _playerId));
else
return q.ToList()[0];
}
}
catch (Exception ex)
{
throw new EntityContextException("GetPlayerBYID failed.", ex);
}
}