GridView增删改,更改时无法将类型为“System.Web.UI.WebControls.DataControlLinkButton”的对象强制转换
更改时报错信息:无法将类型为“System.Web.UI.WebControls.DataControlLinkButton”的对象强制转换为类型“System.Web....
更改时报错信息:无法将类型为“System.Web.UI.WebControls.DataControlLinkButton”的对象强制转换为类型“System.Web.UI.WebControls.TextBox”。有没有人知道讲怎么转换,帮帮忙!下面是代码:
SqlConnection sqlcon = null;
SqlCommand sqlcom = null;
SqlDataAdapter myda = null;
DataSet myds = null;
string strCon = "Data Source=.;database=db_04;Integrated Security=true";
public bool checkCommand(string sqlstr)
{
using (sqlcon = new SqlConnection(strCon))
{
sqlcon.Open();
using (sqlcom = new SqlCommand(sqlstr, sqlcon))
{
return sqlcom.ExecuteNonQuery() > 0 ? true : false;
}
}
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string sqlstr = "update tb_GoodsInfo set GoodsName='" +
((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() +
"',GoodsIntroduce='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() +
"',GoodsPrice='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() +
"',GoodsIsNew='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim() + "'";
if (this.checkCommand(sqlstr))
{
GridView1.EditIndex = -1;
GridView1.DataBind();
}
}
有没有增删改比较清晰,注释比较全面的代码,网站也行,给个行吗!代码我是照着书上写的,((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() 都不知道什么意思,能注释吗? 展开
SqlConnection sqlcon = null;
SqlCommand sqlcom = null;
SqlDataAdapter myda = null;
DataSet myds = null;
string strCon = "Data Source=.;database=db_04;Integrated Security=true";
public bool checkCommand(string sqlstr)
{
using (sqlcon = new SqlConnection(strCon))
{
sqlcon.Open();
using (sqlcom = new SqlCommand(sqlstr, sqlcon))
{
return sqlcom.ExecuteNonQuery() > 0 ? true : false;
}
}
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string sqlstr = "update tb_GoodsInfo set GoodsName='" +
((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() +
"',GoodsIntroduce='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() +
"',GoodsPrice='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() +
"',GoodsIsNew='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim() + "'";
if (this.checkCommand(sqlstr))
{
GridView1.EditIndex = -1;
GridView1.DataBind();
}
}
有没有增删改比较清晰,注释比较全面的代码,网站也行,给个行吗!代码我是照着书上写的,((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() 都不知道什么意思,能注释吗? 展开
展开全部
更改时报错信息:无法将类型为“System.Web.UI.WebControls.DataControlLinkButton”的对象强制转换为类型“System.Web.UI.WebControls.TextBox”。
这是你说的错误信息,那么按照这个错误信息,可以确定,你(TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])这个代码中的Controls[0](第一个子控件)找到的不是TextBox而是DataControlLinkButton,你应该自己检查下你的TextBox是不是在Cells[1](每行的第二个单元格)这个单元格里面,如果是,是不是这个单元格中的第一个控件,只有满足这两个条件才能找到对应的TextBox控件
这是你说的错误信息,那么按照这个错误信息,可以确定,你(TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])这个代码中的Controls[0](第一个子控件)找到的不是TextBox而是DataControlLinkButton,你应该自己检查下你的TextBox是不是在Cells[1](每行的第二个单元格)这个单元格里面,如果是,是不是这个单元格中的第一个控件,只有满足这两个条件才能找到对应的TextBox控件
展开全部
首先给你解决下,((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim()这个意思。gridview.rows是你鼠标点击gridview种的那一行的索引。索引的值为e.rowindex。。。cells是第2列。比如你点击的是第一行。。那么你要编辑修改更新的就是第一行第2列的值。。前边有个(TextBox)就是在你编辑时。。显示的是文本框,,.tostring ..这个就不用说了。。。。trim()就是再你输入文本的时候将你的文本的内容的两边的空格去掉。。在你输入之前编辑的时候。。那个文本框是又空值的。。。你需要的增删改的代码。。需要的话QQ:279782650。。。明天给你发!!希望得分!!
追问
大哥,主要问题没解决哒!运行执行更新时报错信息:无法将类型“System.Web.UI.WebControls.DataControlLinkButton”的对象强制转换为类型“System.Web.UI.WebControls.TextBox”。
错在这儿:string sqlstr = "update tb_GoodsInfo set GoodsName='" +
((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() ..就是这个语句里面,没有写完,类型的转换!
追答
string id1 = GridView1.DataKeys[e.RowIndex].Value.ToString();
string upnr1 = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("upnr")).Text;
string upda = "update g1 set nr='" + upnr1 + "'where id=" + id1 + "";
将controls[0]该为findcontrol这个...(TextBox) 在你的编辑进入模板,在添加的一个textbox的id为upnr
试试~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
无法将类型为“System.Web.UI.WebControls.DataControlLinkButton”的对象强制转换为类型“System.Web.UI.WebControls.TextBox”。 说明找到的是DataControlLinkButton,你却转成了TextBox
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询