写了一段C#代码,总是出现问题,是不是dataGridView1.SelectedRows[i].Cells[1].Value.ToString() 有问题
for(inti=0;i<dataGridView1.Rows.Count;i++){if((bool)dataGridView1.Rows[i].Cells[0].Ed...
for (int i = 0; i <dataGridView1.Rows.Count; i++) { if ((bool)dataGridView1.Rows[i].Cells[0].EditedFormattedValue == true) { //添加图书信息SQL语句 sb.Append("delete from bookinfo where id='"
+ dataGridView1.SelectedRows[i].Cells[1].Value.ToString() + "';"); } 展开
+ dataGridView1.SelectedRows[i].Cells[1].Value.ToString() + "';"); } 展开
展开全部
//将for循环改成这样
for (int i = 0; i <dataGridView1.SelectedRows.Count; i++)
{
//这个if语句也要改一下
if ((bool)dataGridView1.SelectedRows[i].Cells[0].EditedFormattedValue == true)
{ //添加图书信息SQL语句
sb.Append("delete from bookinfo where id='"
+ dataGridView1.SelectedRows[i].Cells[1].Value.ToString() + "';");
}
DataGridView中选中的行总是会<=总行数的
或者改成下面这样也可以
for (int i = 0; i <dataGridView1.Rows.Count; i++)
{
//这个if语句也要改一下
if ((bool)dataGridView1.Rows[i].Cells[0].EditedFormattedValue == true)
{ //添加图书信息SQL语句
sb.Append("delete from bookinfo where id='"
+ dataGridView1.Rows[i].Cells[1].Value.ToString() + "';");
}
for (int i = 0; i <dataGridView1.SelectedRows.Count; i++)
{
//这个if语句也要改一下
if ((bool)dataGridView1.SelectedRows[i].Cells[0].EditedFormattedValue == true)
{ //添加图书信息SQL语句
sb.Append("delete from bookinfo where id='"
+ dataGridView1.SelectedRows[i].Cells[1].Value.ToString() + "';");
}
DataGridView中选中的行总是会<=总行数的
或者改成下面这样也可以
for (int i = 0; i <dataGridView1.Rows.Count; i++)
{
//这个if语句也要改一下
if ((bool)dataGridView1.Rows[i].Cells[0].EditedFormattedValue == true)
{ //添加图书信息SQL语句
sb.Append("delete from bookinfo where id='"
+ dataGridView1.Rows[i].Cells[1].Value.ToString() + "';");
}
展开全部
我觉得可能是你的逻辑有点问题,上面循环的是数据集合的行,但是下面取得是选中的行,如果你没有选择任何行的话,可能就会报这个错误吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i的范围是从0到最后1行。
也许没有选中全部行,譬如说只选中了1,2行,
dataGridView1.SelectedRows,就是1个维数为2的数组,
那么i=3时,dataGridView1.SelectedRows[3],这个数组的索引就超出了范围
也许没有选中全部行,譬如说只选中了1,2行,
dataGridView1.SelectedRows,就是1个维数为2的数组,
那么i=3时,dataGridView1.SelectedRows[3],这个数组的索引就超出了范围
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
datagridview默认的是行首选择,也就是说整行都高亮才称为“选中”,重新选择试试。
另外,应该先判断选中的行数是否大于0.
另外,应该先判断选中的行数是否大于0.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dataGridView1.SelectedRows[i].Cells[1].Value.ToString()
改为
dataGridView1.Rows[i].Cells[1].Value.ToString()
改为
dataGridView1.Rows[i].Cells[1].Value.ToString()
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询