C#根据datagridview中当前行 删除SQL数据库

就是根据datagridview中选定的行,点“删除”按钮后,删除所连接SQL数据库中的记录,再更新datagridview,其中许可单位或个人是主键, 请给出详细代码

第1个回答  推荐于2016-08-02
今天下班了。明天来了,你没结贴就帮你写。

来了

DataGridViewSelectedRowCollection dr = new DataGridViewSelectedRowCollection();

private void dataGridView1_Click(object sender, EventArgs e)
{
try
{
//单击控件的时候,把当前选中的数据行赋值给dr
dr = dataGridView1.SelectedRows;
}
catch
{ return; }
}

private void button1_Click(object sender, EventArgs e)
{
//比如这个是你的删除按钮
if (dr.Count > 0)//判断是否有选中数据
{
string delstr = dr[0].Cells[0].Value.ToString();//提取选中行第一个单元格内的值
delstr = "delete from table where 许可单位或个人 ='" + delstr + "'";
//语句有了调到你用来删除数据库中数据的方法中,然后重新给datagridview绑定数据。
}
}

这是个例子,还要根据你的具体情况做一些修改,如果还不明白。。。我也帮不到你了。追问

使用你给的语句出现 类型“system.widnows.forms.datagridviewselectedrowcollection”未定义构造函数 应该怎么处理 谢谢 我是初学者 麻烦你回答的详细点

追答

那就改一下。
private string dr;
private void dataGridView1_Click(object sender, EventArgs e)
{
try
{
//单击控件的时候,这里直接主键的只提取出来
dr = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
}
catch
{ return; }
}

private void button1_Click(object sender, EventArgs e)
{
//比如这个是你的删除按钮
if (dr != "" )//判断是否有值 {
string delstr = "delete from table where 许可单位或个人 ='" + dr+ "'";
//语句有了调到你用来删除数据库中数据的方法中,然后重新给datagridview绑定数据。
}
}
这样你在看一下。

追问

if (dr != "" )//判断是否有值 {
string delstr = "delete from table where 许可单位或个人 ='" + dr+ "'";
这段代码提示“嵌入的语句不能是声明或标记语句” 麻烦你再给改一下 谢谢

追答

......你不是拷贝过去的吧。。。不加注释应该是这样。。没问题呀。。。
if( dr != "" )
{
string delstr = "delete from table where 许可单位或个人 = '" + dr + "' ";
}

本回答被提问者采纳
第2个回答  2011-03-15
//更新当前datagridview数据
this.datagridview.Update(this.studentDataSet);
//是否允许删除选中行
this.datagridview.AllowUserToDeleteRows=true;
//执行删除代码
foreach(DataGridViewRow r in datagridview.SelectedRows)
{
datagridview.Rows.Remove(r);
}
这样应该可以实现你要的效果了,但愿对你有所帮助哦
第3个回答  2011-03-15
99987

参考资料:123