努力学习,努力工作,爱家,爱国

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

最近在写一个Winform程序时遇到一个dataGridView在右键菜单删除记录时的问题,写下来备份一下

先看一删除代码:

if (MessageBox.Show("删除后不可恢复,是否真的删除!", "删除", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)==DialogResult.Yes)
            {
                sqlcom.CommandText = "delete from XX where ID=@id";
                sqlcom.Parameters.AddWithValue("@id", dataGridView.CurrentRow.Cells[0].Value.ToString());
                sqlcom.ExecuteNonQuery();
                sqlcom.Parameters.Clear();
                updata();                
            }

很简单的一段代码,但是删除的结果却不是预期的,最后发现问题出在了dataGridViewZFTX.CurrentRow.Cells[0].Value.ToString()这个地方如下图:

 在dataGridView中黑色箭头标记的才是当前行CurrentRow,蓝色标记的才是所选行SelectedRows,改成

 sqlcom.Parameters.AddWithValue("@id", dataGridView.SelectedRows[0].Cells[0].Value.ToString());

就可以得到正确的结果

这只是单行删除的时候容易出现的问题,多行选择道理一样。

 

posted on 2013-03-11 13:34  CRH  阅读(327)  评论(0编辑  收藏  举报