ASP.NET如何删除、编辑没有设置主键的数据?(GridView控件)

我的具体意思是,比如有个表未设置主键,表内有Name,Time,Age列,但是在表中有若干相同的数据(Name,Time,Age三列都相同)。以前如果设置了主键,就可以用... 我的具体意思是,比如有个表未设置主键,表内有Name,Time,Age列,但是在表中有若干相同的数据(Name,Time,Age三列都相同)。
以前如果设置了主键,就可以用string sqlstr="delete from [表名] where 主键名='" + GridView.DataKeys[e.RowIndex].Value.ToString() + "'";
但是现在没有主键,请教如何删除GridView中的某一行?同理又如何编辑某一行呢?
展开
 我来答
小宝爸爸笔记
2012-11-22 · TA获得超过2297个赞
知道小有建树答主
回答量:904
采纳率:50%
帮助的人:667万
展开全部
lz 要先把gridview 转化成模板 在每一行加入个linkbutton 或者button 来触发。
<asp:TemplateField HeaderText="link" ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false"
CommandName="button" Text="Button" CommandArgument='<%# Container.DataItemIndex %>'
onclick="LinkButton1_Click"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
在Gridview_RowCommand 或者 RowDataBound
Convert.ToInt32(e.CommandArgument); 就能获取行号。

而编辑、更新、取消是要加入事件在完善的
GridView1_RowUpdating
int i = e.RowIndex;
string cname = ((Label)GridView1.Rows[i].Cells[3].FindControl("Label2")).Text;
……
GridView1.EditIndex = -1;
gridbind();
protectedvoid GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
gridbind();
}
protectedvoid GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Session["editx"] = e.NewEditIndex;
gridbind();
}
百度网友67d4d83
2012-11-22 · TA获得超过333个赞
知道小有建树答主
回答量:673
采纳率:0%
帮助的人:337万
展开全部
没有主键的话就要用组合键,比如name和age能确定唯一的一个,如果是多项的话是没有办法精确到某一行的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
别骏琛00
2012-11-22 · 超过16用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:34.9万
展开全部
解决方法如下:
1.设计阶段设置模板列。
2.在模板列中增加按钮。
3.为按钮编写实现代码(在command事件中)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式