中易网

GRIDVIEW中编辑更新的时候总是提示索引超出范围。必须为非负值并小于集合大小

答案:2  悬赏:60  
解决时间 2021-03-03 07:00
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{

SqlConnection conn = new SqlConnection();
//设置数据库连接字符串属性值
conn.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True;User Instance=True";

string drugKey = GridView1.DataKeys[e.RowIndex].Value.ToString();
////取得文本框中的输入内容
string drugID = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim();
string drugName = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim();
string drugType = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim();
string drugBuyPrice = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim();
string drugCompany = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim();
string drugFactory = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[6].Controls[0])).Text.ToString().Trim();
string drugBuyCount = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[7].Controls[0])).Text.ToString().Trim();
string drugBuyData = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[8].Controls[0])).Text.ToString().Trim();

string sqlStr = "update BuyTable set DrugID='" + drugID + "',DrugName='" + drugName + "',DrugType='" + drugBuyPrice + "',DrugCompany='" + drugCompany + "',DrugFactory='" + drugFactory + "',DrugBuyCount='" + drugBuyCount + "',DrugBuyData='" + drugBuyData + "' where ID='" + drugKey + "'";
SqlCommand comm = new SqlCommand("sqlStr",conn);
conn.Open();
comm.ExecuteNonQuery();
GridView1.EditIndex = -1;
conn.Close();
BindGrid();

}
下面是我的数据库表





最佳答案
在Gridview中第一列是ID还是drugID?如果是drugID的话,你后面的索引应该是从0开始而不是从1开始,如果不是,那么仔细检查你的Gridview列种是否有漏的情况
全部回答
string did = ((label)(this.gridview1.rows[e.rowindex].cells[0].controls[0])).text.tostring(); controls[0]是第一个控件
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么氮气能够防止纳米级铁粉被氧化
金隆网络会所在哪里啊,我有事要去这个地方
网客网咖NO.2在什么地方啊,我要过去处理事情
狮子坡我想知道这个在什么地方
南充市公安局高坪区分局龙蚕派出所怎么去啊,
刚喷的新稻笑就下雨了有用吗
本人移民香港,原大陆车辆行驶证年检怎么办
ASP中,变量的声明有哪两种声明方式?具体有
无线路由无法连接到互联网
宜路国安堂大药房我想知道这个在什么地方
澳洲大学精算排名,本科能读吗?
怎么样才算一个优秀的男人
霍格沃茨的教授都有哪些?
润鑫装饰地址有知道的么?有点事想过去
济南飞昆明2016年4月19号机票价格
推荐资讯
梵音禅寺我想知道这个在什么地方
怎么样把液晶电视调到最清晰,高清效果。
新都区龙桥镇金鹿药店怎么去啊,有知道地址的
小自考和大自考对于以后找工作都有用吗 会被
大众美食馆在什么地方啊,我要过去处理事情
速求七姐妹两个字的游戏名拜托各位了 3Q
两辆做匀速直线运动的汽车,它们所用时间之比
1967年11月属羊的是什么命
大健康产业真的像马云说的那么火吗?
一个女人说她很爱我,但我一定要赚很多钱,有
说女人富太是什么意思
ふける(老ける)和おいる (老いる)的区别
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?