从网格视图中删除行时出错

编程入门 行业动态 更新时间:2024-10-14 14:22:43
本文介绍了从网格视图中删除行时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我在从网格中删除行时使用此代码无法绑定多部分标识符System.Web.UI.WebControls.Label。网格视图

I am using this code when deleting rows from grid The multi-part identifier "System. Web.UI.WebControls.Label" could not be bound. grid view

Label name = (Label)grddata.Rows[0].FindControl("lblname"); //Label salary = (Label)grddata.Rows[0].FindControl("lblsal"); Label id = (Label)grddata.Rows[0].FindControl("lblid.text"); //string id = grddata.DataKeys // [e.Item.ItemIndex].ToString(); //SqlDataAdapter da = new SqlDataAdapter("UPDATE empdata SET name ='" + name + "' and salary=" + salary + " ", con); SqlCommand cmd; cmd = new SqlCommand("delete from empdata name='"+name+"' ", con); cmd.CommandType = CommandType.Text; con.Open(); cmd.ExecuteNonQuery(); showdata(); con.Close();

[edit]添加了代码块[/ edit]

[edit]Code block added[/edit]

推荐答案

在行删除事件下尝试此操作: Try this under the row deleting event: protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { Label name= (Label)GridView1.Rows[e.RowIndex].FindControl("lblname"); SqlConnection CN = new SqlConnection(Str_Conn); CN.Open(); SqlCommand myCommand = new SqlCommand("Delete from empData Where name=@name", CN); myCommand.Parameters.Add(new SqlParameter("name", SqlDbType.VarChar)).Value = name.Text ; SqlDataReader myReader = default(SqlDataReader); myReader = myCommand.ExecuteReader(); lblStatus.text="Data deleted successfully." }

这是因为以下一行。 That is because of the following line. Label id = (Label)grddata.Rows[0].FindControl("lblid.text");

它应该是。

It should be.

Label id = (Label)grddata.Rows[0].FindControl("lblid");

这个id从未在该函数中使用过。所以,也不需要阅读它。

Bit this "id" is never used in that function. So, no need to read it either.

Label id = (Label)grddata.Rows[0].FindControl("lblid.text");

还有一件事,你总是从 Row [0] 中读取名字,这不是正确的方法。 您应该使用 zahid 建议的 e.RowIndex 删除行中的名称。

One more thing, you are always reading the name from Row[0], which is not the correct way. You should read the name from the Row, which is being deleted using e.RowIndex, already suggested by zahid.

您没有在查询中写 Where 关键字,因此显示错误 尝试以这种方式更正 protected void GridView1_RowDeleting(object sender,GridViewDeleteEventArgs e) { Label name =(标签)GridView1.Rows [e.RowIndex] .FindControl(lablename); SqlConnection cn = new SqlConnection(Str_Conn); cn.Open(); SqlCommand c md = new SqlCommand(从empData中删除其中 name ='+ name.Text +',cn); cmd.ExecuteNonQuery(); cmd.dispose(); cn.Close(); lablemsg.Text =数据删除..; } You are not write the Where Keyword in your query so its show the error try to correct like this way protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { Label name= (Label)GridView1.Rows[e.RowIndex].FindControl("lablename"); SqlConnection cn = new SqlConnection(Str_Conn); cn.Open(); SqlCommand cmd = new SqlCommand("Delete from empData Where name='"+name.Text+"'", cn); cmd.ExecuteNonQuery(); cmd.dispose(); cn.Close(); lablemsg.Text="Data deleted.."; }

更多推荐

从网格视图中删除行时出错

本文发布于:2023-05-26 02:22:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/335827.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:网格   视图

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!