当前位置:编程学习 > C#/ASP.NET >>

急需被解决问题,GridView问题

我在前台绑定了一个GridViewplLC,想从前台获取数据,在后台接受,并插入数据库。配料站编号是自动生成的,其他是手动输入的。执行到下面语句时,出现如下错误
 String plzbh= ((TextBox)GridViewplLC.Rows[i].FindControl("配料站编号")).Text.ToString().Trim();
     (此处出现错误是:用户代码未处理,NullReferenceException)

 String tcNum = GridViewplLC.Rows[i].Cells[0].Text;
 String shcNum = GridViewplLC.Rows[i].Cells[1].Text;

int ret = device_para2Dal1.savePlz(plzbh,tcNum,shcNum);

MessageBox.Show(this.Page, "配料站料仓个数新增成功");
GridView 数据库 --------------------编程问答-------------------- 明显的 (TextBox)GridViewplLC.Rows[i].FindControl("配料站编号")

这里没有取到TextBox

你确定此TextBox的ID是 配料站编号? --------------------编程问答-------------------- q107770540
你说的是对的,我就是取不到给GridView中的值。ID是配料站编号 --------------------编程问答-------------------- String plzbh= ((TextBox)GridViewplLC.Rows[i].FindControl("配料站编号")).Text.ToString().Trim();

你的ID取个英文名试试,另外就是,你的循环是怎么写的 --------------------编程问答--------------------
引用 3 楼 a01589 的回复:
String plzbh= ((TextBox)GridViewplLC.Rows[i].FindControl("配料站编号")).Text.ToString().Trim();

你的ID取个英文名试试,另外就是,你的循环是怎么写的

发现错误了,应为
((TextBox)GridViewplLC.Rows[i].Cells[你要取的TextBox的列].FindControl("配料站编号")).Text.ToString().Trim(); --------------------编程问答-------------------- 参考我楼上的回复,你如果直接在
GridViewplLC.Rows[i].FindControl("配料站编号"))中是找不到的,因为没有指定具体的列 --------------------编程问答--------------------
 回复楼上,我那个配料站编号是绑定上去的,不是手动输入的,配料站碳材料仓个数,石灰料仓个数是手动输入的。我想把我绑定的和输入的这个GridView中数据全部接受,查到数据库中

for (int i = 0; i < nplz; i++)
             {
                 //往数据库中配料站料仓个数中插入数据

                 String plzbh = ((TextBox)GridViewplLC.Rows[i].Cells[0].FindControl("配料站编号")).Text.ToString().Trim();
                 
                 String tcNum = GridViewplLC.Rows[i].Cells[1].Text;
                 String shcNum = GridViewplLC.Rows[i].Cells[2].Text;

                 //插入数据库语句
                 int ret = device_para2Dal1.savePlz(plzbh,tcNum,shcNum);
}
--------------------编程问答-------------------- 帖前台的HTML来看看 --------------------编程问答--------------------
引用 6 楼 hwwhverv 的回复:

 回复楼上,我那个配料站编号是绑定上去的,不是手动输入的,配料站碳材料仓个数,石灰料仓个数是手动输入的。我想把我绑定的和输入的这个GridView中数据全部接受,查到数据库中

for (int i = 0; i < nplz; i++)
             {
                 //往数据库中配料站料仓个数中插入数据

                 String plzbh = ((TextBox)GridViewplLC.Rows[i].Cells[0].FindControl("配料站编号")).Text.ToString().Trim();
                 
                 String tcNum = GridViewplLC.Rows[i].Cells[1].Text;
                 String shcNum = GridViewplLC.Rows[i].Cells[2].Text;

                 //插入数据库语句
                 int ret = device_para2Dal1.savePlz(plzbh,tcNum,shcNum);
}

String plzbh = ((TextBox)GridViewplLC.Rows[i].Cells[0].FindControl("配料站编号")).Text.ToString().Trim();
你开始并没有写我贴出的红色部分,就会报错,因为找不到控件 --------------------编程问答-------------------- 还有就是你确定你的第一列是TextBox吗?怎么感觉不太像,还是贴下前台的HTML代码吧
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,